Centos ssh和scp利用expect自动填充密码

Posted 人艰不拆_zmc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos ssh和scp利用expect自动填充密码相关的知识,希望对你有一定的参考价值。

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

介绍在centos环境下,脚本依赖expect来达到这一目的,首先确认安装 expect

密码有特殊字符如$需要转义

ssh登录脚本,ip在执行脚本时动态输入:

#!/usr/bin/expect
set timeout 30
set ip [lindex $argv 0 ]
spawn ssh -l root $ip
expect "password:"
send "[email protected]\$e1111\r" 
interact     

scp传输脚本

#!/usr/bin/expect
cd /home/fastdfs/storage
spawn scp data.tar.gz [email protected]:/home/data/storage
set timeout 30
expect "password:"
send "[email protected]\$e1111\r" 
interact      

 
 

以上是关于Centos ssh和scp利用expect自动填充密码的主要内容,如果未能解决你的问题,请参考以下文章

expect实现自动scp和ssh登录后执行命令,并向bash提供返回值

expect实现自动scp和ssh登录后执行命令,并向bash提供返回值

ssh采用expect实现自动输入密码登录拷贝

分发系统-expect

利用spawn和expect自动交互并返回交互结果

scp时使用expect免密码交互