您好我正试图从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:进入交互式会话。*
答案 0 :(得分:0)
如果远程命令没有关闭其输入/输出/ stederr,则SSH会话将永远等待其输入(至少直到其超时)。
my $cmd = "ls / 0<&- 1>&- 2>&-";
此致