Software Frage Möglichkeit der Scriptsteuerung eines SSH-Client gesucht.

dr_tommi

alter Oldie
Ich muss in regelmäßigen Abständen Konfigurationsdateien von Routern abspeichern.
Die Router sind über SSH mit verändertem Port unter ihrer öffentlichen IP-Adresse erreichbar, allerdings nur von bestimmten Servern/IP-Adressen.
Manuell ist das alles kein Problem, mit einem SSH-Client verbinden, Benutzername und Passwort senden, erweiterten Modus einschalten, benötigte Dateien per TFTP an einen Server sende, abmelden.
Nun würde ich das ganze gerne automatisieren, da es sich aktuell um etwa 120 Router handelt.
Nun gibt es aber mit Plink/Putty ein Problem.
key.PNG


Solange ich den Host schon mal manuell besucht habe, klappt alles prima, da der Key im Cache gespeichert ist.
Nur leider kommen jede Woche neue Adressen hinzu.
Und da kann man nicht alle neuen IP-Adressen zuerst manuell anfahren, nur um den Key zu speichern.
Wir vertrauen diesen Adressen und der Zugriff auf diese Geräte ist eingeschränkt.

Gibt es eine Möglichkeit das auch für neue IP-Adressen zu automatisieren? Gibt es dafür einen Parameter?
Oder wäre ein anderes Tool besser dafür geeignet?
 

boao

Aktives Mitglied
Hi,
wenn Du unter Windows unterwegs bist, gibt es Kitty mit der Kommandozeilen-Option -auto-story-sshkey.

Das sollte helfen.
Gruß, boao
 

mailfire

Bekanntes Mitglied
Oder auch mit einem Python Script:


/ Edit:
hier auch ausführlicher dokumentiert:

 

dr_tommi

alter Oldie
Erstmal vielen Dank für die Denkanstösse.
Die plink.exe, klink.exe und Powershell sind aktuell im Testeinsatz.

Nimm nicht PuTTY sondern klassisches SSH dir Windows. Das lässt sich prima automatisieren
Dazu habe ich leider keine ausreichende Doku gefunden, wäre natürlich am einfachsten mit Bordmitteln ohne zusätzliche Software.


Das mit dem Server-Key habe ich jetzt so gelöst, dass ich zuerst eine Verbindung mit absichtlich falschen Credentials aufbaue und aus der Rückmeldung den Key per Regex extrahiere und speichere.
Im zweiten Aufruf mit den richtigen Credentials wird der Key dann mit angegeben.
Das klappt soweit ganz gut.
Leider macht der SSH-Server auf den Geräten bei der Ausführung der Kommandos noch nicht ganz das was ich will.
Das mit Python schaue ich mir auch mal an. Da könnte man mit dem Compiler auch den Code "schützen" bzw. zumindest das Lesen erschweren.
 

DrSnuggles

Bekanntes Mitglied
Du solltest niemals ungeprüft ein Passwort an einen SSH- Server senden, d.h. du musst vorher den Fingerprint OOB geprüft haben.
Sonst hast du ganz schnell Mal ein Passwort an einen fremden Server verloren
 

dr_tommi

alter Oldie
Du solltest niemals ungeprüft ein Passwort an einen SSH- Server senden, d.h. du musst vorher den Fingerprint OOB geprüft haben.
Sonst hast du ganz schnell Mal ein Passwort an einen fremden Server verloren
Da hast du natürlich im Prinzip Recht, aber in diesem Fall geht es um Geräte, auf die eigentlich kein Fremdzugriff besteht.
Nur festgelegte Ports (keine Standardports) und Protokolle (https und ssh) und das auch nur von fest definierten IP-Adressen sowie 12-stellige Benutzerkennungen und Passwörter aus dem Generator.
Und es handelt sich hier auch nicht um Server im eigentlichen Sinne.
Ziel der Aktion ist die Sicherung der jeweiligen Konfigurationen auf einem externen Server.
 
Oben Unten