루트 비밀번호가 올바르게 변경되었는지 확인하는 방법

루트 비밀번호가 올바르게 변경되었는지 확인하는 방법

/etc/shadow파일의 루트 비밀번호 해시를 대체하여 다수의 서버에서 루트 비밀번호를 변경하는 OpsWare 작업이 있습니다.

일종의 스크립트가 필요합니다. 가급적 OpsWare를 사용하여 다시 실행하는 것이 좋지만 해시를 비교하고 싶지 않습니다. 일종의 su(또는 login) 명령을 실행하고 실제 비밀번호 문자열을 입력하기를 원합니다. 내가 이렇게 하고 싶은 이유는 과거에 다른 사람이 만든 해시가 제대로 암호화되지 않고 수많은 서버에서 루트 로그인이 거부된 적이 있기 때문입니다.

구현할 수 있는 아이디어를 찾고 있습니다. expect생각해 보았지만 우리 비즈니스의 표준 유틸리티가 아니고 테스트 후 즉시 설치하고 제거해야 하기 때문에 "빠른" 솔루션이 아닙니다.

아이디어와 제안에 감사드립니다.

답변1

sshpass명령줄에서 옵션으로 암호를 제공할 수 있는 유틸리티가 있습니다 . 이 도구는 여러 호스트에서 병렬로 실행되도록 스크립트를 작성할 수 있습니다. sshpassJumpbox에 설치 하고 다음을 수행하십시오.

sshpass -p password ssh root@host 'hostname;date;id'

그리고 여러 호스트에서 실행할 수 있도록 셸 루프나 다른 방법(병렬 SSH 또는 Clustersh 등)에 포함시킵니다.

사람들은 이것이 안전하지 않다고 생각할 수도 있지만 명령줄에서 실행하면 쉘 기록을 지우고 화면을 지울 수 있으며 일반 텍스트 비밀번호의 흔적은 없습니다.

답변2

sshpass -f[filename] 비밀번호가 포함된 파일을 구문 분석하면 bash 거래 기록을 지울 필요가 없습니다.

매뉴얼 페이지에서:

-ffilename

비밀번호는 파일 이름의 첫 번째 줄입니다.

관련 정보