使用expect实现ssh自动输入密码,从而自动登陆Linux
2010-12-18 14:22
1041 查看
以下来自网上的一些资料和自己的实验,用以下命令执行:
expect -f expect-ssh.exp <username> <password> <hostname or ip>
注意,在这个expect-ssh.exp中,connect函数主要负责登陆,代码的最后两行,两个send是登陆上去后,执行的命令,注意最后一定要执行一个exit,否则会导致expect执行完成后还留在远程主机上。
这里是expect-ssh.exp的源码: proc usage {} {
puts stderr "usage: $::argv0 username password ipaddress"
exit 1
}
proc connect {pass} {
expect {
"(yes/no)?" {
send "yes\n"
expect "*password:" {
send "$pass\n"
expect {
"*#" {
return 0
}
}
}
}
"*password:" {
send "$pass\n"
expect {
"*#" {
return 0
}
}
}
}
return 1
}
if {$argc != 3} { usage }
set username [lindex $argv 0]
set password [lindex $argv 1]
set hostip [lindex $argv 2]
spawn ssh ${username}@${hostip}
if {[connect $password]} {
exit 1
}
send "rm -f /root/testeric;rm -f pattern_file\n"
send "exit\n"
expect eof
expect -f expect-ssh.exp <username> <password> <hostname or ip>
注意,在这个expect-ssh.exp中,connect函数主要负责登陆,代码的最后两行,两个send是登陆上去后,执行的命令,注意最后一定要执行一个exit,否则会导致expect执行完成后还留在远程主机上。
这里是expect-ssh.exp的源码: proc usage {} {
puts stderr "usage: $::argv0 username password ipaddress"
exit 1
}
proc connect {pass} {
expect {
"(yes/no)?" {
send "yes\n"
expect "*password:" {
send "$pass\n"
expect {
"*#" {
return 0
}
}
}
}
"*password:" {
send "$pass\n"
expect {
"*#" {
return 0
}
}
}
}
return 1
}
if {$argc != 3} { usage }
set username [lindex $argv 0]
set password [lindex $argv 1]
set hostip [lindex $argv 2]
spawn ssh ${username}@${hostip}
if {[connect $password]} {
exit 1
}
send "rm -f /root/testeric;rm -f pattern_file\n"
send "exit\n"
expect eof
相关文章推荐
- 使用expect脚本实现Linux中自动输入密码
- linux初装ssh,使用expect建立信任关系,搞定烦人的输入密码或者要求yes/no建立指纹
- 使用ssh-keygen,实现免密码登陆linux的方法
- 使用expect实现ssh不输入密码登录远程服务器
- Ubuntu使用Spawn和expect实现ssh自动登陆
- 用expect实现SCP/SSH自动输入密码登录
- sshpass实现ssh自动输入密码登陆服务器
- Linux使用expect实现免手工密码输入
- linux 使用java编写ssh登陆主机 输入密码登陆并执行命令(jsch)
- iTerm2 结合 Linux expect 实现 ssh 自动登陆, 通过跳板机登录服务器内网功能
- linux、mac上用expect脚本实现脚本自动输入密码
- 在 Linux 命令行脚本中执行 sudo 等命令时自动输入密码(使用expect)
- 使用expect实现shell脚本中scp,ssh自动输入口令
- linux、mac上用expect脚本实现脚本自动输入密码
- shell脚本通过expect脚本实现自动输入密码(使用expect)
- 使用expect自动输入ssh密码
- 使用ssh-keygen,实现免密码登陆linux
- 通过shell配合expect自动输入账号密码登陆ssh或ftp
- Linux实现SSH免密码登陆
- Linux主机间ssh实现无密码登陆