ssh自动登录并且su的脚本

Posted on Thu 20 May 2010 in 我用(IT)

从一台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 "yesr"
exp_continue
} "*assword:*" {
send "$p1r"
exp_continue
} "*ast login:*" {
# 在s1上变成u2/p2用户:
send "LANG=en_US.UTF-8r"
expect "$*"
send "su - $u2r"
expect "*assword:*"
send "$p2r"
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