Linux ssh下执行ssh命令远程登录其他机器,总是需要输入密码,如果人工去登录,输入密码那还可以,但是让程序自动化登录远程ssh服务器,并执行命令着就比较麻烦了

安装expect

centos安装:  yum  install  expect -y


#!/usr/bin/expect

set timeout 120

spawn scp -r  /tmp/file.txt ccc@10.10.99.33:/mnt/ccc/

expect {

        "yes/no" {exec sleep 1 

                  send "yes\r"; exp_continue}

        password: {exec sleep 5

                 send "111111\r" ; exp_continue}

        eof exit

}

注意: password:  后要有空格,如果没有空格会没有任何提示报错。

默认情况下 10 秒执行命令就会中断

set timeout 120 添加这一段时间会长很多