我使用sshpass在ubuntu 11.04上传递非交互密码。
当我用scp使用sshpass的时候
sshpass -p '123' scp sayuj@192.168.1.51:/home/sayuj/examples.desktop ~/Desktop/
它工作正常
但它不适用于SSH
sshpass -p '123' ssh sayuj@192.168.1.51
可能是什么问题,我该如何解决?
我找到一个解决方案:
问题是新版本的ssh客户端仍然有和旧版本的sshpass
(从2008年sshpass
)。
你可以在这里找到补丁
sshpass
源码
所有你需要的只是补丁的来源(只有1行添加和1个小小的变化),编译和安装(不要忘记以前删除包)。
新的sshpass版本1.05与最新的ssh客户端一起工作。 它包含在Ubuntu 12.04精确穿山甲中。
对于较旧的Ubuntu(或其他Linux发行版),您可以从以下来源获得:
http://sourceforge.net/projects/sshpass/files/sshpass/1.05/
解压:
tar xvzf sshpass-1.05.tar.gz
建立:
cd sshpass-1.05 ./configure make
并使用创建的二进制sshpass 。
您可以使用rsync
如下所述:
rsync --rsh="sshpass -p 123 ssh -l sayuj" 192.168.1.51:/home/sayuj/examples.desktop ~/Desktop/