用expect实现SCP/SSH自动输入密码登录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/csdnhxs/article/details/88730210

在命令行ssh远程登录服务器和scp远程传输文件都需要交互式输入密码,无法像mysql登录数据库 mysql -uroot -p123456一样直接完成。

其实可以用脚本依赖expect来达到这一目的。

首先安装expect:

1

[root@yqtrack-jumphost src]# yum -y install expect

SSH登录脚本:

1

2

3

4

5

6

#!/usr/bin/expect

set timeout 30

spawn ssh [email protected]

expect "password:"

send "123456@\$abcdef\r"

interact

SCP传送文件脚本:

1

2

3

4

5

6

#!/usr/bin/expect

set timeout 30

spawn scp /usr/local/src/zbx_redis_stats.py [email protected]:/usr/local/src/

expect "password:"

send "123456@\$abcdef\r"

interact

注意:密码有特殊字符如“$”需要转义;
   密码以“\r”结尾。

猜你喜欢

转载自blog.csdn.net/csdnhxs/article/details/88730210