2012-03-26 5 views
-1

こんにちは私はWindows XPマシンからUNIXボックスでシンプルなlsをやろうとしています。停止しても終了しません。Net :: SSH :: Win32Perlがハングします

以下
use Net::SSH::W32Perl; 
use diagnostics; 

    my $host = 'host'; 
    my $ssh = new Net::SSH::W32Perl($host, debug => 1); 
    $ssh->login('username', 'password'); 
    my $cmd = "ls"; 
    my($stdout, $stderr, $exit) = $ssh->cmd($cmd); 
    print "$stdout"; 
    exit; 

が出力されている問題に何ができるか、パスワード認証が、出力を与えるために、そのことはできませんを使用してログインすることができたことに気づきます。何故ですか?

> C:\>perl winssh.pl 
>  WXVM0026: Reading configuration data c:\/.ssh/config 
>  WXVM0026: Reading configuration data /etc/ssh_config 
>  WXVM0026: Connecting to hp-test, port 22. 
>  WXVM0026: Socket created, turning on blocking... 
>  WXVM0026: Remote protocol version 2.0, remote software version OpenSSH_4.3p2-hpn 
>  WXVM0026: Net::SSH::Perl Version 1.34, protocol version 2.0. 
>  WXVM0026: No compat match: OpenSSH_4.3p2-hpn. 
>  WXVM0026: Connection established. 
>  WXVM0026: Sent key-exchange init (KEXINIT), wait response. 
>  WXVM0026: Algorithms, c->s: 3des-cbc hmac-sha1 none 
>  WXVM0026: Algorithms, s->c: 3des-cbc hmac-sha1 none 
>  WXVM0026: Entering Diffie-Hellman Group 1 key exchange. 
>  WXVM0026: Sent DH public key, waiting for reply. 
>  WXVM0026: Received host key, type 'ssh-dss'. 
>  WXVM0026: Host 'hp-test' is known and matches the host key. 
>  WXVM0026: Computing shared secret key. 
>  WXVM0026: Verifying server signature. 
>  WXVM0026: Waiting for NEWKEYS message. 
>  WXVM0026: Send NEWKEYS. 
>  WXVM0026: Enabling encryption/MAC/compression. 
>  WXVM0026: Sending request for user-authentication service. 
>  WXVM0026: Service accepted: ssh-userauth. 
>  WXVM0026: Trying empty user-authentication request. 
>  WXVM0026: Authentication methods that can continue: publickey,password,keyboard-interactive. 
>  WXVM0026: Next method to try is publickey. 
>  WXVM0026: Next method to try is password. 
>  WXVM0026: Trying password authentication. 
>  WXVM0026: Login completed, opening dummy shell channel. 
>  WXVM0026: channel 0: new [client-session] 
>  WXVM0026: Requesting channel_open for channel 0. 
>  WXVM0026: channel 0: open confirm rwindow 0 rmax 32768 
>  WXVM0026: Got channel open confirmation, requesting shell. 
>  WXVM0026: Requesting service shell on channel 0. 
>  WXVM0026: channel 1: new [client-session] 
>  WXVM0026: Requesting channel_open for channel 1. 
>  WXVM0026: Entering interactive session. 
>  WXVM0026: Sending command: ls 
>  WXVM0026: Sending command: ls 
>  WXVM0026: Requesting service exec on channel 1. 
>  WXVM0026: channel 1: send eof 
>  WXVM0026: channel 1: open confirm rwindow 2097151 rmax 32768 
>  WXVM0026: input_channel_request: rtype exit-status reply 0 
>  WXVM0026: channel 1: rcvd eof 
>  WXVM0026: channel 1: output open -> drain 
>  WXVM0026: channel 1: rcvd close 
+0

使用しているのperlのバージョンは何に置き換えますか? http://code.activestate.com/ppm/Net-SSH-W32Perl/はパッケージが最近のバージョンでは動作しないことを示しています... Net :: SSH2をwinnipegから入手することをお勧めします –

+0

ありがとうAndrew、それが動作しましたNet :: SSH2を使用します。助けてくれてありがとう – Zack

答えて

0

最近同じ問題が発生しました。 I found a solution in PerlMonksと私はそれが私のために働くようになった方法です。

  1. $ ENV {HOME}環境変数が設定されていない場合は、設定してください。 Net :: SSHは設定項目を探します。ネット/ SSH/Perl.pmで
  2. 、ライン49と50をコメントアウトし、my $proto_class = $ssh->protocol_class($proto);
+0

ジョエル、助けてくれてありがとう。上記の作業は、それぞれのインストールで同じように実装しなければならないので、私は好きではありません。私はネット:: SSH2を使用して作業している – Zack

関連する問題