I'm using Net::SSH::Perl to run a few commands on a remote box.
#!/usr/bin/perl use strict; use warnings; use Net::SCP::Expect; my $remote_host = "xxx.xxx.xxx.xxx"; my $password = "xxxxxx"; my $username = "xxxxxx"; my $ssh = Net::SSH::Perl->new($remote_host, protocol=>'1', options => +[ "UserKnownHostsFile /home/apache/.ssh/known_hosts" ]) or die("could + not connect"); print "ssh set\n"; $ssh->login($username, $password); print "login done\n"; my $test_dir = "/foo/bar/"; my $cmd = "if [ -d $test_dir ]; then echo 1; else echo 0; fi"; print "CMD: $cmd\n"; my($stdout, $stderr, $exit) = $ssh->cmd($cmd); print "STDOUT: $stdout STDERR: $stderr EXIT: $exit\n";
The above is a sample script. If I run this on box 1 it gets all the way to the line with $ssh->cmd($cmd) and then dies with the following error:

Connection closed by remote host. at /usr/lib/perl5/site_perl/5.8.5/Net/SSH/Perl/SSH1.pm line 75

If I change the protocol in the line starting with "my $ssh" from '1' to '1,2', It takes forever but eventually it runs without any errors. If I try '2,1' it again takes forever but eventually it runs without any errors. If I try '2' same extremely long delay but it eventually works. The delay every time is at the login line

Now on box2, the unmodified script (where protocol is just '1') runs just fine and is very speedy.

What could I have screwed up on box1 to cause this weirdness and how to I make it work like box2?


In reply to Net::SSH::Perl and SSH protocols by xorl

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.