Skip to content

ssh-Zugriff auf ProCurve-Switches automatisieren

In HP ProCurve und ssh habe ich dokumentiert, wie man einem ProCurve-Switch beibringen kann, per ssh zum Management erreichbar zu sein. Leider wird "ssh manger@switch <command>" nicht unterstützt, so dass man Expect braucht, um den Switch zu bedienen.

Nun sind TCL und ich nicht gerade die allerbesten Freunde, und ich erinnere mich mit Schaudern daran, wie ich vor Jahren den Status eines Infortrend-RAIDs mit Expect aus der seriellen Schnittstelle herausgekitzelt habe, um über den Nagios Alarm zu schlagen, wenn eine Platte ausfällt. Also machen wir's diesmal in Perl.

Noch schwerer wird's, wenn man die Ausgabe des Switches weiterverarbeiten möchte: Denn das, was aus dem Expect herausfällt, ist voller Steuerzeichen. Hier hilft Term::VT102, ein Perl-Modul, das im Speicher ein VT102-Terminal simuliert, dessen Bildschirm man nach Abschluß der geplanten Aktion auslesen kann. Das habe ich mit einem Scroll-Hook gelöst, der die Daten, die aus dem virtuellen Terminal herausscrollen, in ein Array schreibt. Zum Schluß werden dann einfach genug CRs in das Terminal gekippt, dass auch die letzte Bildschirmseite in unserem Array gelandet ist.

Um die Eigenheiten des Switches zu Umschiffen und sicherzustellen, dass die Daten trotzdem lesbar sind, muss man dem VT102 noch Teile der Cursorbewegung abgewöhnen: Der Switch positioniert den Cursor oft hart, und das terminal kommt dabei durcheinander, wenn die im Switch eingestellte Terminalgröße nicht richtig ist.

Continue reading "ssh-Zugriff auf ProCurve-Switches automatisieren"

HP ProCurve und ssh

Das hier muss man in einen ProCurve-Switch reinpasten, damit er danach per ssh konfigurierbar ist:

ip ssh key-size 1024
crypto key generate ssh rsa
ip ssh version 2
ip ssh
aaa authentication ssh login public-key none
aaa authentication ssh enable public-key none
copy tftp pub-key-file <server-address> <file-name.pub> manager

Falle Nummer Eins: Der Kommentar zum Public Key darf kein Leerzeichen enthalten

Falle Nummer Zwei: Auch per ssh nimmt der Switch keine Kommandos auf der Kommandozeile entgegen, "ssh manager@switch show running-config" kann man also leider knicken. Man muss sich dann doch mit expect einen abbrechen, muss aber immerhin keine Klartextpassworte hinterlegen. Aber der passphraselose Key gibt natürlich trotzdem die volle Kontrolle über den Switch.