sshpass 一个免交互式ssh登录工具

centos 下面使用yum方式安装sshpass

 远程登录其他机器执行命令,之前一直用export 脚本的方式。现在感觉用这个更加方便一点,但是不安全,不建议在生产环境中使用此命令!

 

安装epel源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum install sshpass -y

sshpass 一个免交互式ssh登录工具

命令使用:

sshpass  -p 'password' ssh user@ip 'cmd'

ssshpas -p '远程机器密码'  使用ssh  用户名@远程机器ip '要执行的命令'

 

第一次执行的结果:

sshpass 一个免交互式ssh登录工具

错误:

执行后什么都没有提示,查看返回状态码为6 就是有问题

解决:

先ssh user@ip  连接下

或者使用  -o StrictHostKeyChecking=no 参数忽略这个 输入yes/no的步骤

sshpass 一个免交互式ssh登录工具

!第一次手动匹配下 "yes",然后再执行sshpass 这个命令,如果放在脚本中执行没有任何输出的话请加上 -o StrictHostKeyChecking=no 此参数

执行成功的结果:

sshpass 一个免交互式ssh登录工具

 

使用scp 协议传输文件,发送本地文件到 其他机器

sshpass -p "password" scp -o StrictHostKeyChecking=no /tmp/logs.txt root@192.168.166:/data

 

 

其他系统环境安装:

ubuntu下面使用apt-get 方式安装

# apt-get install sshpass

源码方式安装

# wget http://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz
#tar xf sshpass.tar.gz
#cd sshpass-1.06/
# ./configure
#make && make install

 

相同类型的命令:expect

https://blog.jinchuang.org/1660.html

分享