Net :: SSH :: Perl没有输出

时间:2012-03-26 07:10:24

标签: perl ssh

您好我正试图从Windows获取一个unix框的连接,只是传递一个ls命令。执行只是挂起而没有任何输出。什么可能是错的?

#!/usr/bin/perl -w
use strict;

use Net::SSH::Perl;

my $hostname = "unixhost";
my $username = "####";
my $password = "######";

my $cmd = shift;


my $ssh = Net::SSH::Perl->new("$hostname", debug=>1,  identity_files => []);
$ssh->login("$username","$password");
my ($stdout,$stderr,$exit) = $ssh->cmd("$cmd");
print $stdout;
exit;

* GT; C:> perl ssh.pl“ls -ltr”  WXVM0026:读取配置数据

  

c:/。ssh / config WXVM0026:读取配置数据/ etc / ssh_config   WXVM0026:连接到它们,端口22. WXVM0026:远程协议   版本1.99,远程软件版本   OpenSSH_4.5p1 + sftpfilecontrol-v1.1-hpn12v14 WXVM0026:Net :: SSH :: Perl   版本1.34,协议版本1.5。 WXVM0026:没有compat匹配:   OpenSSH_4.5p1 + sftpfilecontrol-V1.1-hpn12v14。 WXVM0026:连接   成立。 WXVM0026:正在等待服务器公钥。 WXVM0026:   收到服务器公钥(768位)和主机密钥(1024位)。   WXVM0026:主机'themse'已知并与主机密钥匹配。 WXVM0026:   加密类型:DES3 WXVM0026:已发送加密的会话密钥。 WXVM0026:   收到加密确认。 WXVM0026:进行质询响应   认证。密码:密码:WXVM0026:发送命令:ls -ltr   WXVM0026:进入交互式会话。*

1 个答案:

答案 0 :(得分:0)

如果远程命令没有关闭其输入/输出/ stederr,则SSH会话将永远等待其输入(至少直到其超时)。

 my $cmd = "ls / 0<&- 1>&- 2>&-";

此致