sshpass无法正常工作

我使用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/