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 -p 'password' ssh user@ip 'cmd'
ssshpas -p '远程机器密码' 使用ssh 用户名@远程机器ip '要执行的命令'
第一次执行的结果:
错误:
执行后什么都没有提示,查看返回状态码为6 就是有问题
解决:
先ssh user@ip 连接下
或者使用 -o StrictHostKeyChecking=no 参数忽略这个 输入yes/no的步骤
!第一次手动匹配下 "yes",然后再执行sshpass 这个命令,如果放在脚本中执行没有任何输出的话请加上 -o StrictHostKeyChecking=no 此参数
执行成功的结果:
使用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.wojc.cn/1660.html