想在shell脚本里ssh连接到另外一台服务器后执行一些命令,但是不希望通过交互方式输入登录密码。
主要的解决方法有三种:
1. 生成ssh公钥,建立和对方机器的信任关系;
2. 使用expect脚本;
3. 使用sshpass
这里介绍一下sshpass
yum install sshpass -y
[root@fs bin]# ./sshpass -p 123456 ssh -o StrictHostKeyChecking=no root@192.168.1.15 "ls -t | head -n 1"
[root@fs bin]# ./sshpass -p 123456 scp -o StrictHostKeyChecking=no /root/abc.sh 192.168.1.15:/root
-p:指定ssh的密码
-o StrictHostKeyChecking=no 避免第一次登录出现公钥检查。也就是避免出现
参考资料:http://blog.csdn.net/hepeng597/article/details/8727052
http://blog.csdn.net/zj0910/article/details/40679301
本文出自 “boyhack” 博客,请务必保留此出处http://461205160.blog.51cto.com/274918/1743782
原文地址:http://461205160.blog.51cto.com/274918/1743782