sshpass工具介绍:
sshpass 是一个简单、轻量级的命令行工具,通过它我们能够向命令提示符本身提供密码(非交互式密码验证),这样就可以通过 cron 调度器执行自动化的 shell 脚本进行备份。
参数介绍
-f filename:从文件中获取密码
-d number:使用数字作为获取密码的文件描述符
-p password:指定明文本密码输入(安全性较差)
-e 从环境变量SSHPASS获取密码
-o StrictHostKeyChecking=no 忽略密码提示
安装:
yum install sshpass
示例:
1、直接远程连接某主机
sshpass -p {密码} ssh {用户名}@{主机IP}
2、远程连接指定ssh的端口
sshpass -p {密码} ssh -p ${端口} {用户名}@{主机IP}
3、从密码文件读取文件内容作为密码去远程连接主机
sshpass -f ${密码文本文件} ssh {用户名}@{主机IP}
4、从远程主机上拉取文件到本地
sshpass -p {密码} scp {用户名}@{主机IP}:${远程主机目录} ${本地主机目录}
5、将主机目录文件拷贝至远程主机目录
sshpass -p {密码} scp ${本地主机目录} {用户名}@{主机IP}:${远程主机目录}
6、远程连接主机并执行命令
sshpass -p {密码} ssh -o StrictHostKeyChecking=no {用户名}@{主机IP} 'rm -rf /tmp/test'
实践:
将192.168.1.1.101 服务器上/opt/log.zip 拉取到本地服务器。
echo "123456" >/root/.passwd #将密码123456写到文件中
sshpass -f /root/.passwd scp root@192.168.1.101:/opt/log.zip /opt/
提示有报错,然后我先试试能不能登陆
sshpass -p 123456 ssh root@192.168.1.101
还是不行,于是添加了 -o StrictHostKeyChecking=no 参数 登录就没有问题了,
然后再利用scp拉取文件也没有问题了!