想在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