Skip Menu |

This queue is for tickets about the Net-SSH-Perl CPAN distribution.

Report information
The Basics
Id: 67729
Status: new
Priority: 0/
Queue: Net-SSH-Perl

People
Owner: Nobody in particular
Requestors: alphatan.zh [...] gmail.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 1.34
Fixed in: (no value)



Subject: Hung when connecting Linux SSH servier on Windows(win7, winxp)
Steps to reproduce the problem: Run following testing script. It will hang on the lines. Testing Scripts: #! /usr/bin/perl use strict; use warnings; use Socket qw{ :crlf }; use Net::SSH::Perl; my $ssh = Net::SSH::Perl->new( "192.168.22.170", ( debug => 1, protocol => '2,1', ) ); $ssh->login("root", "rootpassword"); my ($o, $e, $rv) = $ssh->cmd("ls", "\n"); print STDERR "\$o = $o\n"; print STDERR "\$e = $e\n"; print STDERR "\$rv = $rv\n"; Trace of the testing script: alphatan-x200: Reading configuration data C:\Users\alphatan/.ssh/config alphatan-x200: Reading configuration data /etc/ssh_config alphatan-x200: Connecting to sdf.org, port 22. alphatan-x200: Remote protocol version 1.99, remote software version OpenSSH_5.8 alphatan-x200: Net::SSH::Perl Version 1.34, protocol version 2.0. alphatan-x200: No compat match: OpenSSH_5.8. alphatan-x200: Connection established. alphatan-x200: Sent key-exchange init (KEXINIT), wait response. alphatan-x200: Algorithms, c->s: 3des-cbc hmac-sha1 none alphatan-x200: Algorithms, s->c: 3des-cbc hmac-sha1 none alphatan-x200: Entering Diffie-Hellman Group 1 key exchange. alphatan-x200: Sent DH public key, waiting for reply. alphatan-x200: Received host key, type 'ssh-dss'. alphatan-x200: Host 'sdf.org' is known and matches the host key. alphatan-x200: Computing shared secret key. alphatan-x200: Verifying server signature. alphatan-x200: Waiting for NEWKEYS message. alphatan-x200: Send NEWKEYS. alphatan-x200: Enabling encryption/MAC/compression. alphatan-x200: Sending request for user-authentication service. alphatan-x200: Service accepted: ssh-userauth. alphatan-x200: Trying empty user-authentication request. alphatan-x200: Authentication methods that can continue: publickey,password,keyboard-interactive,hostbased. alphatan-x200: Next method to try is publickey. alphatan-x200: Next method to try is password. alphatan-x200: Trying password authentication. alphatan-x200: Login completed, opening dummy shell channel. alphatan-x200: channel 0: new [client-session] alphatan-x200: Requesting channel_open for channel 0. alphatan-x200: channel 0: open confirm rwindow 0 rmax 32768 alphatan-x200: Got channel open confirmation, requesting shell. alphatan-x200: Requesting service shell on channel 0. alphatan-x200: channel 1: new [client-session] alphatan-x200: Requesting channel_open for channel 1. alphatan-x200: Entering interactive session. alphatan-x200: Sending command: ls alphatan-x200: Sending command: ls alphatan-x200: Requesting service exec on channel 1. alphatan-x200: channel 1: send eof alphatan-x200: channel 1: open confirm rwindow 2097151 rmax 32768 Guess on the reason(May not be right, but just a hint): It may be caused by the CRLF notions on socket operations. After creating a new socket, call 'binmode(SOCK, ":raw:perlio")' to make it raw mode and setting 'local $/=CRLF;' before reading and append $CRLF as line separator; Distribution Name and Version: Net::SSH::Perl 1.34 Perl Version osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread uname='Win32 strawberryperl 5.12.2.0 #1 Fri Nov 5 05:17:27 2010 i386' Operating System vendor and version WinXP and Win7