Löschen von SSH-Keys auf dem TP-Link TL-SG3109
21. August 2012 | Von Ralf Spenneberg | Kategorie: AdminDer TL-SG3109 ist ein einfacher kleiner managebarer Switch von TP-Link, der für kleines Geld (unter 100 EUR) sowohl VLAN, Trunking, ACLs, SNMP und vieles weiteres mehr kann. Leider wird er nicht mehr von TP-Link unterstützt und es scheint auch keine Firmware-Updates zu geben. Die ausgelieferte Firmware ist sehr buggy und kann nur über die CLI wirklich genutzt werden. Das Webinterface ist vollkommen unbrauchbar. Allerdings hat auch die CLI ihre Probleme.
Ich habe zum Beispiel einen SSH-Server für die Fernadministration gestartet und hierzu Schlüssel erzeugt:
swralf(config)# crypto key generate rsa The SSH service is generating a private RSA key. This may take a few minutes, depending on the key size. swralf(config)# ip ssh server
Versuche ich mir nun mit Hilfe der SSH von einem Linux-System zu verbinden, kommt:
ssh_rsa_verify: RSA modulus too small: 512 < minimum 768 bits key_verify failed for server_host_key
Scheinbar erzeugt der Switch nur RSA-Schlüssel mit einer Länge von 512 Bits. Die Länge ist bei diesem Gerät nicht konfigurierbar. Alternativ können auch DSA-Schlüssel erzeugt werden. Die funktionieren. Das habe ich auf einem anderen Switch verifiziert. Ich kann die DSA-Schlüssel auch auf diesem Switch erzeugen, der SSH-Server nutzt jedoch nur die RSA-Schlüssel, wenn sie existieren. Leider gibt es keinen Befehl um die Schlüssel zu löschen. Wahrscheinlich sind sie im Flash gespeichert. Der Switch hat aber in der CLI keinen Befehl um den Flash anzuzeigen. Ohne Wissen des Dateinamens können die Schlüssel nicht gespeichert werden.
Es funktioniert jedoch trotzdem. Hierzu muss der Switch neugeladen werden:
swralf# reload You haven't saved your changes. Are you sure you want to continue ? (Y/N)[N] Y This command will reset the whole system and disconnect your current session. Do you want to continue ? (Y/N)[N] Y .... .... TPLink Switch based on 88E6218 with ARM946E-S. 32MByte SDRAM. I-Cache 8 KB. D-Cache 8 KB. Cache Enabled. Autoboot in 2 seconds - press RETURN or Esc. to abort and enter prom.
Hier muss nun ESC gedrückt werden. Dann erscheint ein neues Menü. Hier wählen Sie dann 4 für den Diagnostic Mode aus.
Startup Menu [1] Download Software [2] Erase Flash File [3] Password Recovery Procedure [4] Enter Diagnostic Mode [5] Set Terminal Baud-Rate [6] Back Enter your choice or press 'ESC' to exit: The diagnostic will be activated after the system startup. ==== Press Enter To Continue ====
Mit Enter kommen Sie zurück ins Menü und wählen dann die 6. Nun bootet der Switch wieder, jetzt aber im Debug mode.
>debug Enter DEBUG Password: ***** DEBUG>help help on supported commands: FORMAT: help [name] [name] ... DEBUG>help ? Unknown parameter May be one from the following list: boot config delete delscr eap erase exit help mping os ping print read reboot save set software syslog test unset web
Das Debug-Kennwort ist „debug“. Die Hilfe zeigt den Befehl „print“. Ein weiterer Aufruf von „help print“ zeigt den Befehl „print files“ an:
DEBUG>print files Name Type Size status RSCOD1 static 3328K exist RSCOD2 static 3328K exist SYSLOG1 static 128K exist SYSLOG2 static 128K exist CDB dynWithCopy 128K exist BACKUP dynWithoutCopy 128K not exist SSHKEYS dynWithCopy 128K exist
Es gibt also ein Datei SSHKEYS. Diese kann mit dem Befehl „delete file“ gelöscht werden:
DEBUG>delete file SSHKEYS Are you sure you want to delete file SSHKEYS (y/n)[n]? y ************************************************** ***************** SYSTEM RESET ***************** **************************************************
Anschließend führt das System sofort einen Reboot durch. Nun können neue DSA-Schlüssel erzeugt werden:
swralf(config)# crypto key generate dsa The SSH service is generating a private DSA key. This may take a few minutes, depending on the key size. ........ swralf(config)# ip ssh server
Nun funktioniert auch die SSH-Verbindung nachdem der alte Host-Key im Client gelöscht wurde.