Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Mittels Perl SSH2 login

  1. #1
    Registrierter Benutzer
    Registriert seit
    20.04.2001
    Beiträge
    79

    Mittels Perl SSH2 login

    Hi,
    bastle gerade an einem Perl Skript. Das Skript soll einfach bestimmte Befehle ausführen und sich wieder ausloggen. Cron kann ich nicht verwenden da ich auch Dateien mittels SFTP kopieren muss.

    Mein Code bisher:
    Code:
    #!/usr/bin/perl -w
    
    use strict;
    use Net::SSH::Perl;
    
    
    my $host = '192.168.120.190';
    my $user = 'root';
    my $pass = 'XXXxxxXXX\@2005';
    
    print ("Verbinde...");
    my $ssh2 = Net::SSH::Perl->new($host, protocol => 2);
    $ssh2->login($user, $pass);
    ...
    Wenn das Skript ausgeführt wird, dauert es ca. 2 Minuten und danach kommt folgende Fehlermeldung: Permission denied at ./login.pl line 12
    Line 12 ist die Zeile auf die das Login erfolgen sollte. Ich vermute mal das vielleicht das Sonderzeichen ein Problem darstellen kann obwohl ich es demaskiert habe. Nur eine Vermutung... weil ich sonst nicht weiß was sonst noch falsch sein könnte.

    oafish

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.05.2003
    Beiträge
    161
    expect ist ein TCL-Dialekt speziell fuer solche Zwecke.

    apt-get install autoexpect (fuer Debian/Ubuntu)

    Und dann einfach eine session mit "autoexpect" oeffnen. Das schreibt Dir dann ein entsprechendes Skript, das Du ohne weitere Vorbildung mit dem Auge editieren koennen solltest.

    Wie Du darum herumkommst, das Passwort als plaintext im Skript zu haben, weiss ich jetzt allerdings jetzt auch nicht aus dem Stegreif! Wenn schon ssh, dann ja moeglichst nicht das Passwort als plaintext... Zumindest wuerde ich den Variablennamen nicht "pass" enthalten lassen.

    Samsara
    .
    Interface design
    whohas - wer hat's im Repository? Debian? Fedora? Gentoo? ...?
    Hardware compatibility list - das Original mit bereits 3000 Einträgen
    It ain't a hack if it ain't dirty.

  3. #3
    Registrierter Benutzer
    Registriert seit
    15.04.2005
    Beiträge
    105
    ein einer wirklich schönen lösung für dieses problem bin ich bis jetzt leider immer wieder klaglos gescheitert.

    derzeit baue ich folgenden code in die perlscripts ein

    Code:
    system ("ssh username\@host.at \"/usr/local/bin/script.sh\"")
    die passwortauthentifizierung erfolgt über RSA Schlüssel

    http://mailman.sil.at/pipermail/cd/2...ry/000056.html hab ich mir nicht genau angesehen, scheint aber ok zu sein.
    falls nicht einfach nach "RSA schlüssel hinzufügen"


    EDIT: Wie gesagt, über eine Lösung die echt schön ist würde ich mich freuen

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.04.2001
    Beiträge
    79
    Hi,
    die Sache ist etwas komplizierter. Einen Keyexchange und über RSA möchte ich anhand der vielen Rechner nicht machen. Egal, nun zu meinem vorherigem Problem. Wenn ich den Debugmodus einschalte, erhalte ich folgende Meldung:

    Code:
    linux: Reading configuration data /root/.ssh/config
    linux: Reading configuration data /etc/ssh_config
    linux: Allocated local port 1023.
    linux: Connecting to 192.168.120.200, port 22.
    linux: Remote protocol version 2.0, remote software version OpenSSH_4.2p1 Debian-5
    linux: Net::SSH::Perl Version 1.29, protocol version 2.0.
    linux: No compat match: OpenSSH_4.2p1 Debian-5.
    linux: Connection established.
    linux: Sent key-exchange init (KEXINIT), wait response.
    linux: Algorithms, c->s: 3des-cbc hmac-sha1 none
    linux: Algorithms, s->c: 3des-cbc hmac-sha1 none
    linux: Entering Diffie-Hellman Group 1 key exchange.
    linux: Sent DH public key, waiting for reply.
    linux: Received host key, type 'ssh-dss'.
    linux: Host '192.168.120.200' is known and matches the host key.
    linux: Computing shared secret key.
    linux: Verifying server signature.
    linux: Waiting for NEWKEYS message.
    linux: Enabling incoming encryption/MAC/compression.
    linux: Send NEWKEYS, enable outgoing encryption/MAC/compression.
    linux: Sending request for user-authentication service.
    linux: Service accepted: ssh-userauth.
    linux: Trying empty user-authentication request.
    linux: Authentication methods that can continue: publickey,keyboard-interactive.
    linux: Next method to try is publickey.
    Permission denied at ./login.pl line 12
    Im Net::SSH::Perl gibt es ein schönes Beispiel (cmd.pl). Das funktioniert auch nicht. Bleibt auch bei login hängen. Muss man vor Verwendung irgendwas am SSHD ändern?

    oafish

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •