从一台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