sshpass 사용법

리눅스/OS 일반|2016. 10. 11. 17:41
반응형

목차


1 개요


2 활용예시 1: sshpass + ssh (접속)


3 활용예시 2: sshpass + ssh (명령어 실행)


4 활용예시 3: sshpass + scp (파일 보내기)


5 참고 자료




활용예시 1: sshpass + ssh (접속)


명령어

sshpass -p패스워드 ssh -o StrictHostKeyChecking=no 아이디@호스트주소


실행예시

[root@zetawiki ~]# sshpass -pP@ssw0rd ssh -o StrictHostKeyChecking=no root@135.79.246.99

Warning: Permanently added '135.79.246.99' (RSA) to the list of known hosts.

Last login: Wed Nov 27 15:52:59 2013 from 135.79.246.80

[root@jmtest01 ~]#

→ 135.79.246.80(jmnote) → 135.79.246.99(jmtest01) 접속



활용예시 2: sshpass + ssh (명령어 실행)


명령어

sshpass -p패스워드 ssh -o StrictHostKeyChecking=no 아이디@호스트주소 명령어


실행예시

[root@zetawiki ~]# sshpass -pP@ssw0rd ssh -o StrictHostKeyChecking=no root@135.79.246.99 hostname

jmnote02

[root@zetawiki ~]#

→ 135.79.246.99에서 hostname 명령어가 실행되어 원격서버의 호스트명 jmnote02가 출력됨



활용예시 3: sshpass + scp (파일 보내기)


명령어

sshpass -p패스워드 scp -o StrictHostKeyChecking=no 로컬파일 아이디@호스트주소:/폴더/파일명


실행예시

[root@zetawiki ~]# sshpass -pP@ssw0rd scp -o StrictHostKeyChecking=no hello.txt root@135.79.246.99:/root/hello.txt

[root@zetawiki ~]# sshpass -pP@ssw0rd ssh -o StrictHostKeyChecking=no root@135.79.246.99

Last login: Wed Nov 27 15:56:26 2013 from 135.79.246.80

[root@jmtest01 ~]# ll hello.txt

-rw-r--r-- 1 root root 6 Nov 27 16:03 hello.txt

→ 135.79.246.80(jmnote)에서 135.79.246.99(jmtest01)로 hello.txt 복사




[출처] http://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_sshpass_%EC%82%AC%EC%9A%A9%EB%B2%95



내용 추가 ==============


1) 변수 이용

쉘스크립트에서 사용할 경우 변수 지정을 먼저 하고 가져다 쓰면 편리합니다.

server_cmd="sshpass -p1q2w3e4r ssh -o StrictHostKeyChecking=no root@192.168.10.2"


# $server_cmd df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

                       19G  8.6G  8.8G  50% /

/dev/sda1              99M   41M   54M  43% /boot

tmpfs                 249M     0  249M   0% /dev/shm


2) ssh 포트가 기본 포트가 아닐경우
sshpass -p1q2w3e4r ssh -t -p220 -o StrictHostKeyChecking=no root@192.168.10.2

3) scp 와 특정 포트를 동시 사용

sshpass -p1q2w3e4r scp -P220 -o StrictHostKeychecking=no /root/crm/crm.log root@192.168.10.2:/root/


4) 여러줄의 명령을 보낼 경우

a.txt 에 아래 내용 넣은 후

touch 111

touch 222

아래와 같이 실행합니다.

cat a.txt |$server_cmd



-----------------------------



반응형

댓글()