Leser: 24
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl
use Net::SSH::Perl;
$scon = Net::SSH::Perl->new("192.168.1.100");
$scon->login("molli","molli");
print "Baue Verbindung auf...\n";
($output,$errors,$exit) = $scon->cmd("ls -l");
print $output;
molli@penguin ~/projects/mprm $ perl verb2.pl Math::BigInt: couldn't load specified math lib(s), fallback to Math::BigInt::Calc at /usr/lib/perl5/vendor_perl/5.8.8/Crypt/DH.pm line 6 Permission denied at verb2.pl line 5
pqdie fehlermeldung "permission denied" lässt einfach darauf schliessen, dass du das verzeichnis, indem du dich über ssh befindest, nicht ansehen kannst. geht das ganze über ssh von hand?
2010-02-22T16:02:42 pqdie fehlermeldung (bzw. warnung) von Math::BigInt ist unabhängig und sollte wirklich nur eine warnung sein und nicht den eigentlichen fehler verursachen (man muss zur abhilfe ein bestimmtes modul installieren, ich hatte den fehler auch mal, komm aber grad nicht drauf, welches modul).
QuoteNo - the message is merely a response to an attempt to use (I think) Math::BigInt::GMP or (if that fails) Math::BigInt::Pari or (if that fails) Math::BigInt::BitVector. When those libs are unavailable, you get the messages that the OP quoted, and the pure-perl (slow) Math::BigInt is used instead. Nothing there that's going to cause any problems (except for speed of processing).
1
2
3
molli@penguin ~/projects/mprm $ perl mprm.pl
Permission denied at mprm.pl line 22
Net::SSH::Perl::SSH2=HASH(0x814b180)
$scon->login("USER","PASSWORD");
my $cons = Net::SSH::Perl->new( $host, debug => 1 );
pqcrosspost: http://community.perl.de/content/keine-ssh-verbind...
@mollilinux: bitte das nächste mal wie in unserer Wiki:FAQ beschrieben kenntlich machen.
Linuxeraktivier doch mal den Debug-Modus und schau Dir die Ausgaben an.
1
2
3
4
5
6
7
8
9
molli@penguin ~/projects/mprm $ perl verb2.pl
penguin.local: Reading configuration data /home/molli/.ssh/config
penguin.local: Reading configuration data /etc/ssh_config
penguin.local: Connecting to 192.168.1.100, port 22.
penguin.local: Remote protocol version 2.0, remote software version OpenSSH_5.2
penguin.local: Net::SSH::Perl Version 1.34, protocol version 2.0.
.enguin.local: No compat match: OpenSSH_5.2
penguin.local: Connection established.
Can't call method "login" on an undefined value at verb2.pl line 5, <GEN0> line 1.
LinuxerMeldest Du Dich manuell ebenfalls mit Username/Passwort an?
Oder verwendest Du da die Anmeldung über Schlüssel?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
#!/usr/bin/perl # vi:ts=4 sw=4 et: use strict; use warnings; use Net::SSH::Perl; #> global variables #> ---------------------------------------------------------------------------- my $ssh = Net::SSH::Perl->new( '127.0.0.1', debug => 0 ); #> main script #> ---------------------------------------------------------------------------- # hier muss etas der Art "Kontrolle: Net::SSH::Perl" ausgegeben werden # (der Modulname kann variieren, sollte aber egtl. Net::SSH::Perl beinhalten) printf "Kontrolle: %s\n", ref( $ssh ); # hier korrekte Userdaten angeben, sonst gibt's "Permission Denied"! $ssh->login( 'user', 'pass' ); my ( $out, $err, $rc ) = $ssh->cmd("/bin/ls -l"); $err = '' if !defined $err; print <<RESULTAT; EXITCODE: $rc ERROR: $err OUTPUT: $out RESULTAT __END__
LinuxerIch habe mir mal ein Testskript zusammengestellt und kann aktuell Dein Problem nicht nachvollziehen.
Bei Verwendung korrekter User-Informationen funktioniert das Skript wie gewünscht.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
molli@penguin ~/projects/mprm $ perl error-script.pl
penguin.local: Reading configuration data /home/molli/.ssh/config
penguin.local: Reading configuration data /etc/ssh_config
penguin.local: Connecting to 192.168.1.101, port 22.
penguin.local: Remote protocol version 2.0, remote software version OpenSSH_5.2
penguin.local: Net::SSH::Perl Version 1.34, protocol version 2.0.
.enguin.local: No compat match: OpenSSH_5.2
penguin.local: Connection established.
Kontrolle: Net::SSH::Perl::SSH2
penguin.local: Sent key-exchange init (KEXINIT), wait response.
penguin.local: Algorithms, c->s: 3des-cbc hmac-sha1 none
penguin.local: Algorithms, s->c: 3des-cbc hmac-sha1 none
penguin.local: Entering Diffie-Hellman Group 1 key exchange.
penguin.local: Sent DH public key, waiting for reply.
penguin.local: Received host key, type 'ssh-dss'.
penguin.local: Host '192.168.1.101' is known and matches the host key.
penguin.local: Computing shared secret key.
penguin.local: Verifying server signature.
penguin.local: Waiting for NEWKEYS message.
penguin.local: Send NEWKEYS.
penguin.local: Enabling encryption/MAC/compression.
penguin.local: Sending request for user-authentication service.
penguin.local: Service accepted: ssh-userauth.
penguin.local: Trying empty user-authentication request.
penguin.local: Authentication methods that can continue: publickey,keyboard-interactive.
penguin.local: Next method to try is publickey.
Permission denied at error-script.pl line 21
QuoteThe documentation of Net::SSH::Perl is misleading on this behalf, as the method
$ssh->login($user, $pass);
[download]
will never work - by design!
2010-02-22T17:44:50 mollilinuxIch melde mich mit Username/Passwort an. Es kommt dan einfach noch eine Bestätigung der SSH Schlüssel yes/no, bei der ich mit yes bestätige...
DubuWas ist das denn für eine "Bestätigung der SSH Schlüssel"? Normalerweise ist man nach Eingabe des Passwortes direkt eingeloggt. Vielleicht liegt es daran, dass Net::SSH nicht mit dieser Frage zurecht kommt.
LinuxerFür den User, den ich getestet hatte, waren Schlüssel hinterlegt.
$scon->login("USER","PASSWORT");
CrianUnd was hast du gemacht, was das Problem beseitigt hat?