shell下使用脚本自动填充密码

一般,当需要ssh到一个服务器时, 会输入

1
2
ssh xxx@xxx
#enter password

当使用脚本自动化时,往往不想要输入密码,此时选择可以使用ssh的public key authentication,或者使用sshpass工具, 再或者,使用下面这段脚本

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/expect

set timeout 20

set cmd [lrange $argv 1 end]
set password [lindex $argv 0]

eval spawn $cmd
expect "assword:"
send "$password\r";
interact

将其放在/usr/bin/exp文件中,添加权限,然后使用

1
2
3
exp <password> ssh <anything>
exp <password> scp <anysrc> <anydst>
exp <password> zssh <anything>

选自stackoverflow Automatically enter SSH password with script

文章目录
,