sshpass

Apr 20, 2016



ssh 또는 scp 사용시 비밀번호를 물어보기 때문에 이와 관련된 백그라운드 잡을 돌리기 애매하다. 만약 리모트 rsync를 crontab으로 할려면 rsa를 사용하던가 rsyncd를 사용해야 할 것이다.

여기서 sshpass를 곁들어 사용하면 패스워드까지 전달해주기 때문에 작업을 자동화하기 수월해진다.

Install

CentOS 6.6 x64 기준, yum install sshpass 시 다음 RPM이 설치된다.

sshpass-1.05-1.el6.x86_64

Usage

Usage: sshpass [-f|-d|-p|-e] [-hV] command parameters
   -f filename   Take password to use from file
   -d number     Use number as file descriptor for getting password
   -p password   Provide password as argument (security unwise)
   -e            Password is passed as env-var "SSHPASS"
   With no parameters - password will be taken from stdin

   -h            Show help (this screen)
   -V            Print version information
At most one of -f, -d, -p or -e should be used

패스워드는 평문을 입력해야하므로 보안에 주의해야한다.

Example

sshpass + ssh

sshpass -p 패스워드 ssh root@aaa.com

sshpass + scp

sshpass -p 패스워드 scp /tmp/file1 root@aaa.com:/tmp/

sshpass + rsync

rsync -avr --rsh="sshpass -p 패스워드 ssh -l root" /tmp/dir1 root@aaa.com:/tmp/