Table of Contents
sshpass
비밀번호를 이용해 ssh 접속을 할 때, 비밀번호 입력을 자동화합니다.
Shell script 등에서 원격접속을 해야 할 때 사용합니다.
주의할 것은 히스토리에 비밀번호가 평문으로 남게됩니다.
설치법
sudo apt-get install sshpass
사용법
sshpass -p 'ssh접속비밀번호' ssh user@host
비밀번호를 파일에 입력해 놓으면 히스토리에 남지 않습니다.
vi ~/password.txt
sshpass -f ~/password.txt ssh user@host
파일 디스크립터를 이용해서 비밀번호 전달할 수 있습니다.
# 파일 디스크립터 3번에 비밀번호를 할당/연결
exec 3<<< "my_secret_password"
# -d 3 옵션으로 3번 FD에서 비밀번호를 읽도록 실행
sshpass -d 3 ssh user@remote-host
# 사용 후 FD 3 닫기
exec 3>&-
SSHPASS 환경변수로 비밀번호를 전달받을 수 있습니다.
# 명령어 앞에 공백 한 칸 추가하면 히스토리에 남지 않습니다. (bash 기준)
SSHPASS='my_secret_password' sshpass -e ssh user@remote-host
exit
history
원격접속 + 원격지 명령 실행
sshpass -p 'ssh접속비밀번호' ssh user@host "sh /test.sh"