여러서버를 거치는 로그인을 자동으로 해주는 expect script

.pwd_for_svr1 : svr1에 사용되는 passwd가 암호화되어 저장되어 있는 파일 (Openssl Aes 같은걸 사용) .pwd_for_svr2 : svr2에 사용되는 passwd가 암호화되어 저장되어 있는 파일


#!/usr/bin/expect

trap {
 set rows [stty rows]
 set cols [stty columns]
 stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH


send_user -- "\npassword for decrypt password : "
stty -echo
expect_user -re "(.*)\n"
set pwd $expect_out(1,string)
stty echo

set pwdForSvr1 [exec openssl aes-256-cbc -d -pass pass:$pwd -in $env(HOME)/.pwd_for_svr1.enc]
set pwdForSvr2 [exec openssl aes-256-cbc -d -pass pass:$pwd -in $env(HOME)/.pwd_for_svr2.enc]


eval spawn ssh userid1@svr1
expect -re "password:"
send "$pwdForSvr1\r"
expect -re "userid1@svr1"
send "ssh userid1@svr2\r"
expect -re "password:"
send "$pwdForSvr2\r"
interact


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-21 18:03:46
Processing time 0.0053 sec