2011-02-17 43 views
10

试图通过Perl脚本在远程机器上执行perl脚本。出现一个选项是使用system()函数并创建一个ssh密钥,因此不需要密码。这使我对这个问题的重点,其他的选项似乎是安装和运行这些Perl模块之一:Perl的净:(:SSH vs SSH2 vs OpenSSH) - 我应该如何比较它们?

除了协议使用,还有什么我应该与这些Perl模块进行比较?

+3

你看到的净:: OpenSSH的文档页面,您链接到一直致力于这个话题一整节题为“网::的OpenSSH Vs的净:: SSH :: *模块”? – indiv 2011-02-17 19:17:15

+0

@indiv:+1 Brad Gilbert通过对我的问题进行编辑链接到这些页面,我会看看它 - 谢谢! – blunders 2011-02-17 19:42:55

回答

14

Net::OpenSSH文档具有section描述每个的优点和缺点。下面是有关你问的是那些一些摘录,但文档列出更多:

Net::SSH只是 机器上可用周围的任何 SSH二进制命令的包装。它可以是非常慢的,因为他们 建立 每一个操作执行新的SSH连接。

Net::SSH2Net::SSH::Perl要好得多,但不能完全 不失稳重。它可以是非常困难的 以同样的方式为Net::SSH::Perl安装在一些特定的工作 系统和它的API也受到限制, 。

Net::OpenSSH有一个非常好的 接口。大多数操作是 在非常相似 该Perl的内建的和共同 模块(即IPC::Open2)的方式进行。

然而,平台的选择可能会限制你的选择。

在另一方面,Net::OpenSSH不 无法在Windows正常工作,甚至没有在 Cygwin的。

当然,该列表偏向Net::OpenSSH,但它让您了解模块之间的主要区别。