從一台Linux機器上用u1用戶自動登錄到服務器, 然後su成u2
- 需要安裝expect
- 腳本如下:
#!/usr/bin/expect
#auto ssh login
set timeout 10
set sshhost [lindex $argv 0]
set u1 "user1"
set p1 "password1"
set u2 "user2"
set p2 "password2"
spawn ssh -l$u1 -pPortNumber $sshhost
expect {
"yes/no" {
send "yes\r"
exp_continue
} "*assword:*" {
send "$p1\r"
exp_continue
} "*ast login:*" {
# 在s1上變成u2/p2用戶:
send "LANG=en_US.UTF-8\r"
expect "\$*"
send "su - $u2\r"
expect "*assword:*"
send "$p2\r"
interact
exit 0
} timeout {
send_user "connection to $sshhost timeout!\n"
exit 1
} "*ncorrect*" {
send_user "password incorrect!\n"
exit 2
} "*ermission*" { #for LINUX ssh
send_user "password Error!\n"
exit 2
} eof {
exit 3
}
}
- 調用:
./connnect.sh ipaddress