Ryu's Tip
ssh-copy-id 쉘스크립트화 + expect
Ryusstory
2017. 11. 12. 19:25
Table of Contents
내용
ssh-copy-id를 사용할 경우 remote 서버로 패스워드 인증 없이 접속이 가능합니다. 이후 ssh server "script" 형태로 쉘 스크립트를 원격으로 실행할 수 있습니다.
하지만 최초 ssh 키를 복사하는 과정에서는 스크립트로 처리하기가 어렵기도 한데 이를 위해 expect를 이용하는 방법이 있습니다.
스크립트
# script 실행을 위한 ssh-copy-id 스크립트
# expect 설치
yum install -y expect
# ssh 키 생성
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
# 접속후 키 등록 및 패스워드 자동입력
/usr/bin/expect <<EOE
set prompt "#"
spawn bash -c "ssh-copy-id 192.168.0.121"
expect {
"yes/no" { send "yes\r"; exp_continue}
-nocase "password" {send "qwe123\r"; exp_continue }
$prompt
}
EOE
# 접속확인
ssh 192.168.0.121
이렇게 하면 스크립팅이 가능합니다.