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
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |