sshscp免秘钥远程执行命令:expect

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sshscp免秘钥远程执行命令:expect相关的知识,希望对你有一定的参考价值。

 首先安装expect

# yum -y install expect

命令格式

# ./expect IP COMM    #expect是独立的工具,所以不能用sh来执行

#!/usr/bin/expect

set timeout -1    #超时时间默认10秒,如果你要执行一条很漫长的命令,那么这个很有必要,这里将超时时间设置为永不超时

set COMMADN1 [lindex $argv 0]    #传参变量,这里引用脚本后面的第一个参数

set COMMADN2 [lindex $argv 1]    #传参变量,这里引用脚本后面的第二个参数

spawn ssh -p 22 $COMMADN1 $COMMADN2    #可以将ssh变成scp命令免秘钥远程拷贝

expect {

        "yes/no" {send "yes\r";exp_continue}    #询问yes/no的时候自动输入yes

        "password:" {send "123456\r"}        #询问密码时自动输入定义好的密码123456

        }

expect eof


以上是关于sshscp免秘钥远程执行命令:expect的主要内容,如果未能解决你的问题,请参考以下文章

ssh免秘钥配置

Linux shell (ssh批量配置免秘)读取配置文件,进行远程操作

免秘钥登录命令

CentOS7的SSH免秘钥认证

centos7-ssh免秘钥登录

第一周第四节用户模式救援模式及虚拟机克隆免秘钥交互式登录