Thread SSH-Verbindung in Perl (4 answers)
Opened by Glühbirne at 2011-04-26 10:12

Gast Glühbirne
 2011-04-26 10:12
#147978 #147978
Ich habe eine Datei, die ich gleich in vier Anfertigungen auf verschiedenen Computern und Servern liegen habe. Ist natürlich Blödsinn, denn wenn ich die Datei verändere und meine Perl-Scripte ausführe, möchte ich die restlichen Dateien auch nicht ändern müssen. Daher will ich mit einer SSH-Verbindung (geht nicht anders, auf die Server muss ich mit ILO zugreifen) auf das Hauptexemplar zugreifen.

Hier geht es aber auch schon los: ich bin nicht besonders sattelfest, was Ubuntu angeht. Habe mir innerhalb von ein paar Wochen die wichtigsten Befehle wie apt-get, grep, ssh -l und so weiter aneignen können, aber trotzdem ... Wie dem auch sei, da ich ein Perl-Paket für diese Aufgabe brauche, dachte ich mir, schauste auf CPAN nach, und dort werde ich auch fündig: CPAN:Net::SSH::Perl. Also apt-cache search Net::SSH::Perl in die Konsole ... aber es kommt nicht viel, oder zumindest nicht das, was ich brauche, denn apt-get zeigt mir an, dass die Pakete entweder auf dem neusten Stand sind oder bloss geupdated werden. Komisch ist nur, dass der Perl-Interpreter nix findet, aber gut, installiere ich das Paket manuell mit tar -xfz ... funktioniert auch gut, perl MakeFile.pl, make und make test funktionieren, aber der Interpreter will immer noch nichts von den Paketen wissen.

Also mache ich Safari auf das Modul bei Google und finde raus, dass ein Perl-Paket namens CPAN:Math::Peri für das andere Modul gebraucht wird und das beide keinen guten Ruf haben. Also suche ich mir auf CPAN ein weiteres Paket, diesmal CPAN:Net::SSH. Vorteil: Der Interpreter scheint es zu erkennen, denn es taucht kein Fehler auf. Problem: Ich muss mich verifizieren, um auf die Datei zugreifen zu können, und dafür muss ich ein Passwort eingeben. Die Dokumentation weist aber ausdrücklich darauf hin:

Quote
Q: How do you supply a password to connect with ssh within a perl script using the Net::SSH module?

A: You don't (at least not with this module). Use RSA or DSA keys. See the quick help in the next section and the ssh-keygen(1) manpage.


, dass das nicht möglich ist. Kopfschuss, aber eine Zeile weiter unten steht noch:

Quote
A #2: See Net::SSH::Expect instead.


Also schaue ich mir CPAN:Net::SSH::Expect an. Scheint auch ganz gut zu sein, wird öfter empfohlen. Also mit apt-cache search Net::SSH::Expect suchen, aber das Paket will er mir nicht liefern. Also wieder manuell runterladen, mit tar -xfz auspacken ... aber jetzt zeigt er mir den Fehler an:

Quote
:/home/user/Downloads# tar -xzf Net-SSH-Expect-1.09.tar.gz
tar: Das sieht nicht wie ein „tar“-Archiv aus.
tar: Springe zum nächsten Kopfteil.
tar: Beende mit Fehlerstatus aufgrund vorheriger Fehler


Und ich fange an, in die Tastatur zu beißen.

Deshalb frage ich hier, ob es nicht irgendein Modul gibt, mit dem ich eine SSH-Verbindung zu einem Server mit Dateizugriff erstellen kann, das funktioniert, sich einfach installieren lässt und mich nicht noch mehr Nerven kostet?
Last edited: 2011-04-26 10:13:38 +0200 (CEST)

View full thread SSH-Verbindung in Perl