2012-04-03 42 views
-1

我试图避免使用Net :: SSH :: Perl库,因为在使用CPAN安装模块时存在一些问题。当我看到它依赖于一长串其他Perl模块时,手动安装似乎太麻烦了。如何在Perl中使用Net :: SSH传递密码?

我想实现的是用我的用户名和密码登录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上。

+0

它会对你有用。看起来像类似的讨论。 http://stackoverflow.com/questions/9766780/perl-script-to-execute-ssh-command-without-using-password – rpg 2012-04-03 08:54:34

+0

嗨。我需要Net :: SSH而不是Net :: SSH :: Perl的帮助,因为由于CPAN和手动安装的问题,我无法安装Net :: SSH :: Perl。你给我的链接是Net :: SSH :: Perl。 – Sakura 2012-04-03 10:08:43

+1

“连接被拒绝”表示客户端无法与服务器进行通信,而不是服务器拒绝了凭据。 – Quentin 2012-04-03 11:21:53

回答

0

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

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

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

A#2:改为参见Net :: SSH :: Expect。

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

相关问题