Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Net::SSH::Perl returns error on pty allocation

by Khen1950fx (Canon)
on Mar 03, 2013 at 12:25 UTC ( #1021496=note: print w/ replies, xml ) Need Help??


in reply to Net::SSH::Perl returns error on pty allocation

No pty allocated, pty required..

Use use_pty => 1 in the constructor; also, the customer server expects SSH2, so use protocol => 2 in the constructor also. Here's the way that I would do it:

#!/usr/bin/perl use strict; use warnings; use Net::SSH::Perl; my $user = 'user'; my $pass = 'password'; my $cmd = "ls /root"; my $ssh = Net::SSH::Perl->new('localhost', debug => 1, protocol => 2, use_pty => 1, ); $ssh->login($user, $pass) ; if ($cmd) { my($stdout, $stderr, $exit) = $ssh->cmd($cmd); print $stdout if $stdout; print $stderr if $stderr; } else { eval "use Term::ReadKey;"; ReadMode('raw'); eval "END { ReadMode('restore') };"; $ssh->shell; print "Connection to host closed.\n"; } __END__


Comment on Re: Net::SSH::Perl returns error on pty allocation
Select or Download Code
Re^2: Net::SSH::Perl returns error on pty allocation
by gdanenb (Acolyte) on Mar 03, 2013 at 13:37 UTC

    Is there an option to send commands and collect output when using $ssh->shell interactive mode?

    I think this is the only way I'll success since customer node is not a standard Linux box

    Anyway, this is the output when I run the code above:

    sem1: Reading configuration data /root/.ssh/config sem1: Reading configuration data /etc/ssh_config sem1: Allocated local port 1023. sem1: Connecting to 1.1.1.1, port 22. sem1: Remote protocol version 2.0, remote software version OpenSSH_4.3 +-40020723001500 sem1: Net::SSH::Perl Version 1.33, protocol version 2.0. sem1: No compat match: OpenSSH_4.3-40020723001500. sem1: Connection established. sem1: Sent key-exchange init (KEXINIT), wait response. sem1: Algorithms, c->s: 3des-cbc hmac-sha1 none sem1: Algorithms, s->c: 3des-cbc hmac-sha1 none sem1: Entering Diffie-Hellman Group 1 key exchange. sem1: Sent DH public key, waiting for reply. sem1: Received host key, type 'ssh-dss'. sem1: Host '1.1.1.1' is known and matches the host key. sem1: Computing shared secret key. sem1: Verifying server signature. sem1: Waiting for NEWKEYS message. sem1: Enabling incoming encryption/MAC/compression. sem1: Send NEWKEYS, enable outgoing encryption/MAC/compression. sem1: Sending request for user-authentication service. sem1: Service accepted: ssh-userauth. sem1: Trying empty user-authentication request. sem1: Authentication methods that can continue: password. sem1: Next method to try is password. sem1: Trying password authentication. sem1: Login completed, opening dummy shell channel. sem1: channel 0: new [client-session] sem1: Requesting channel_open for channel 0. sem1: channel 0: open confirm rwindow 0 rmax 32768 sem1: Got channel open confirmation, requesting shell. sem1: Requesting service shell on channel 0. sem1: channel 1: new [client-session] sem1: Requesting channel_open for channel 1. sem1: Entering interactive session. Received disconnect message: No pty allocated, pty required with Telne +t SSH at /usr/cti/apps/CSPbase/Perl/lib/perl5/site_perl/5.8.8/Net/SSH/Perl/S +SH2.pm line 300
      Try adding set_interactive to the constructor.

        I tried most of options provided by Net::SSH::Perl module but failed to get good results

        On the other hand Net::SSH::Expect module worked perfect for me

        Thank you all

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1021496]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (6)
As of 2015-07-02 23:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (47 votes), past polls