I have a very straight forward script using Net::SSH::Perl that connects to multiple hosts and pulls data from them. The powers that be have added some new servers, and for some reason, the module will not connect to these new servers.

Here is a short version of what is failing:
#!/usr/bin/perl -w use strict; use Net::SSH::Perl; my $user = "username"; my $pass = "password"; my $domain = ".mydomain.com"; my $ssh; my $host; my @hosts = qw(host1 host2); my $lscmd = "ls -ltr"; foreach $host (@hosts){ print "$host\n"; $ssh = Net::SSH::Perl->new("$host$domain", protocol => 2, inte +ractive => 0, options => [ "Password Authentication yes" ], (debug=>' +true')); $ssh->login($user, $pass); my ($lsout, $lserr, $lsexit) = $ssh->cmd($lscmd); print "lsout = $lsout\n"; print "lserr = $lserr\n"; print "lsexit = $lsexit\n"; }

host1 connects and displays lscmd fine. It is a linux server running OpenSSH_3.6.1p2

host2 is a linux server running OpenSSH_4.2. SSH debug info from the script shows:

.... asmodeus: Net::SSH::Perl Version 1.30, protocol version 2.0. asmodeus: No compat match: OpenSSH_4.2. asmodeus: Connection established. asmodeus: Sent key-exchange init (KEXINIT), wait response. asmodeus: Algorithms, c->s: 3des-cbc hmac-sha1 none asmodeus: Algorithms, s->c: 3des-cbc hmac-sha1 none asmodeus: Entering Diffie-Hellman Group 1 key exchange. asmodeus: Sent DH public key, waiting for reply. asmodeus: Received host key, type 'ssh-dss'. asmodeus: Host 'host2.mydomain.com' is known and matches the host key. asmodeus: Computing shared secret key. asmodeus: Verifying server signature. asmodeus: Waiting for NEWKEYS message. asmodeus: Enabling incoming encryption/MAC/compression. asmodeus: Send NEWKEYS, enable outgoing encryption/MAC/compression. asmodeus: Sending request for user-authentication service. asmodeus: Service accepted: ssh-userauth. asmodeus: Trying empty user-authentication request. asmodeus: Authentication methods that can continue: publickey,keyboard +-interactive. asmodeus: Next method to try is publickey. Permission denied at ./ssh_test.pl line 19

I have tried with and without options =>, and both protocol 1 and 2.

I have added the following to ~/.ssh/config PreferredAuthentications password,keyboard-interactive,publickey,hostbased

The error stays the same using the script no matter which of the above I have tried

A manual ssh to host2 works, and using interactive => 1 works (although I have to type pw, which defeats the purpose since I have 200+ systems the real script queries)

I mention SSH versions above because that is the one difference I can think of that would affect this.

Does anyone know why this would fail, and what I can do to fix this?

Thank you in advance for your time

Scott


In reply to Nett:SSH:Perl not going to password auth by stikboy

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.