2012-03-26 132 views
0

嗨我想从Windows的连接unix框,只是通过一个LS命令。执行只是挂起而没有任何输出。什么可能是错误的?Net :: SSH :: Perl手没有输出

#!/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; 

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

C:/ SSH /配置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:不匹配: OpenSSH_4.5p1 + sftpfilecontrol-v1.1-hpn12v14。 WXVM0026:建立连接 。 WXVM0026:等待服务器公钥。 WXVM0026: 接收到服务器公钥(768位)和主机密钥(1024位)。 WXVM0026:主机'themse'是已知的并且与主机密钥匹配。 WXVM0026: 加密类型:DES3 WXVM0026:发送加密的会话密钥。 WXVM0026: 收到加密确认。 WXVM0026:执行质询响应 身份验证。密码:密码:WXVM0026:发送命令:ls -ltr WXVM0026:进入交互会话*

回答

0

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

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

问候,

+0

我试过上面的,为什么它仍然卡? :\t WXVM0026:发送命令:ls/0 <&- 1>& - 2>& - WXVM0026:发送命令:ls/0 <&- 1>& - 2>& - WXVM0026:通道1 WXVM0026请求服务的exec:信道1:开确认rwindow 0 rmax 32768 – Zack 2012-03-26 07:57:45