ssh zu älterer Cisco Hardware
Zitat von Der Texta am 16. Juni 2018, 8:37 UhrDas Problem: ssh dh-group1 Fehlermeldung
Eine ssh-Verbindung zu älteren Cisco-Komponenten scheitert von modernen Linux-Betriebssystemen aus (z.B. Ubuntu 16.04) daran, dass unsichere Key-Exchange-Algorithmen und Chiffrierungsverfahren aus openssh herausgenommen wurden.
Das äußert sich so:
Es gibt mehrere Möglichkeiten, dieses Problem zu umgehen, und die ich hier beschreiben möchte.
Lösung 1: ssh-Aufruf mit Angabe des benötigten KexAlgorithms
Etwas sperrig zu tippen, aber immerhin........klappts damit.
In diesem Beispiel habe ich vorsichtshalber den DSA public Key Algorithmus gleich mit enabled, der möglicherweise auch noch für Probleme sorgen könnte (HostKeyAlgorithms...):
Wenn Dir das Abtippen verständlicherweise zuviel wird, kannst Du versuchen, den Teil mit dem HostKeyAlgorithmus wegzulassen oder den gesamten Aufruf selbstverständlich schön in ein kleines wrapper-Skript einbauen.
Lösung 2: ~/.ssh/config
Die folgenden Zeilen würde die DSA-Cipher und den Key-Exchange-Algorithmus (Kex) diffie-hellman group1 verwendbar machen, indem sie in eine neue Datei namens config unter dem .ssh Verzeichnis im homedir des jewg. Users eingetragen werden:
KexAlgorithms +diffie-hellman-group1-sha1 HostKeyAlgorithms +ssh-dssAuf die vielen weiteren Vorteile der config will ich nur auf Nachfrage näher eingehen. Allerdings gilt sie eben leider nur für den user, in dessen Home-Verzeichnis (~) sie steht.
Lösung 3: Update der Gegenstelle
Das Optimum besteht natürlich darin, die Serverseite dazu zu bringen, keine unsicheren Protokolle und Algorithmen zu verwenden. Dies sollte auch immer Ziel bleiben. Leider, aber verständlicherweise stellt irgendwann jeder Hersteller den Support für ältere Hardware ein, so dass ein Update nicht mehr möglich ist.
Eine Möglichkeit, an der Kommandozeile herauszufinden, was der eigene Client so unterstützt, findest Du hier:
ssh -Q cipher # Listet die unterstützten Cipher-Algorithmen ssh -Q mac # Listet die untestützten MACs oder Hashing-Algorithmen ssh -Q key # Listet die unterstützten public key Typen ssh -Q kex # Listet die unterstützten key exchange Algorithmen
Weiterführende Info zu diesem Thema gibt es auf der Webseite von OpenSSH unter Legacy.
Das Problem: ssh dh-group1 Fehlermeldung
Eine ssh-Verbindung zu älteren Cisco-Komponenten scheitert von modernen Linux-Betriebssystemen aus (z.B. Ubuntu 16.04) daran, dass unsichere Key-Exchange-Algorithmen und Chiffrierungsverfahren aus openssh herausgenommen wurden.
Das äußert sich so:
Es gibt mehrere Möglichkeiten, dieses Problem zu umgehen, und die ich hier beschreiben möchte.
Lösung 1: ssh-Aufruf mit Angabe des benötigten KexAlgorithms
Etwas sperrig zu tippen, aber immerhin........klappts damit.
In diesem Beispiel habe ich vorsichtshalber den DSA public Key Algorithmus gleich mit enabled, der möglicherweise auch noch für Probleme sorgen könnte (HostKeyAlgorithms...):
Wenn Dir das Abtippen verständlicherweise zuviel wird, kannst Du versuchen, den Teil mit dem HostKeyAlgorithmus wegzulassen oder den gesamten Aufruf selbstverständlich schön in ein kleines wrapper-Skript einbauen.
Lösung 2: ~/.ssh/config
Die folgenden Zeilen würde die DSA-Cipher und den Key-Exchange-Algorithmus (Kex) diffie-hellman group1 verwendbar machen, indem sie in eine neue Datei namens config unter dem .ssh Verzeichnis im homedir des jewg. Users eingetragen werden:
KexAlgorithms +diffie-hellman-group1-sha1 HostKeyAlgorithms +ssh-dss
Auf die vielen weiteren Vorteile der config will ich nur auf Nachfrage näher eingehen. Allerdings gilt sie eben leider nur für den user, in dessen Home-Verzeichnis (~) sie steht.
Lösung 3: Update der Gegenstelle
Das Optimum besteht natürlich darin, die Serverseite dazu zu bringen, keine unsicheren Protokolle und Algorithmen zu verwenden. Dies sollte auch immer Ziel bleiben. Leider, aber verständlicherweise stellt irgendwann jeder Hersteller den Support für ältere Hardware ein, so dass ein Update nicht mehr möglich ist.
Eine Möglichkeit, an der Kommandozeile herauszufinden, was der eigene Client so unterstützt, findest Du hier:
ssh -Q cipher # Listet die unterstützten Cipher-Algorithmen ssh -Q mac # Listet die untestützten MACs oder Hashing-Algorithmen ssh -Q key # Listet die unterstützten public key Typen ssh -Q kex # Listet die unterstützten key exchange Algorithmen
Weiterführende Info zu diesem Thema gibt es auf der Webseite von OpenSSH unter Legacy.