【问题标题】:Net::SSH::Perl hands without outputNet::SSH::Perl 手无输出
【发布时间】:2012-04-09 17:06:53
【问题描述】:

您好,我正在尝试从 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;

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

【问题讨论】:

    标签: perl ssh


    【解决方案1】:

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

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

    问候,

    【讨论】:

    • 我试过上面的,为什么还是卡住了? : WXVM0026: 发送命令: ls / 0&- 2>&- WXVM0026: 发送命令: ls / 0&- 2>&- WXVM0026: 在通道1上请求服务执行。 WXVM0026:通道 1:打开确认 rwindow 0 rmax 32768
    猜你喜欢
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多