如何在Perl中使用Net :: SSH传入密码?

时间:2012-04-03 07:25:24

标签: perl ssh

我试图避免使用Net :: SSH :: Perl库,因为使用CPAN安装模块时存在一些问题。当我看到它取决于很长的其他Perl模块列表时,手动安装似乎太麻烦了。

我想要实现的是使用我的用户名和密码登录SSH。然后我需要在其中运行一些命令,并使用SSH从服务器检索一些文件。

我知道如何使用“ssh($ username。”@“。$ ip,$ command)传递用户名,主机名和命令,或者死掉”SSH失败!“;”。但是,我不断收到此错误消息:

ssh: connect to host XX.XX.XX.XXX port 22: Connection refused

其中XX.XX.XX.XXX是我的计算机的主机名或IP地址,并且在子网中作为我尝试从中获取文件的服务器。

有谁知道如何将密码传递给SSH或介绍我在Net :: SSH上的好教程?我在网上找到的大多数教程都是在Net :: SSH :: Perl而不是Net :: SSH。

1 个答案:

答案 0 :(得分:0)

您是否看到了Net :: SSH文档的这个FAQ部分?

  

问:如何提供密码以在perl中连接ssh   使用Net :: SSH模块的脚本?

     

答:你没有(至少没有这个模块)。使用RSA或DSA密钥。看到   下一节中的快速帮助和ssh-keygen(1)联机帮助页。

     

A#2:请参见Net :: SSH :: Expect。

尝试Net :: SSH :: Expect的建议很好。根据您所说的,它听起来符合您的需求。 我已经使用了Net :: SSH :: Expect了很多,如果你想快速完成某些事情,我可以证明它的简单性