본문 바로가기

Ryu's Tip

ssh-copy-id 쉘스크립트화 + expect

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

이렇게 하면 스크립팅이 가능합니다.