Inhaltsverzeichnis

Fehlermeldungen mit macOS Sierra bzw. neueren OpenSSH Clients (u.a. aktuelle Linux Distributionen)

Dieser Artikel gilt nur für AOS Release 6 (z.B. 6.4.6.R01 und 6.7.1.R0x). AOS Release 7/8 basieren auf Linux und zeigen die hier beschriebenen Fehlerbilder nicht.

Secure Shell (SSH)

Beim Versuch sich auf einem OmniSwitch mit AOS Release 6 per SSH anzumelden, kann es zu verschiedenen Fehlermeldungen kommen (abhängig vom Versionsstand des OpenSSH Clients und dessen Konfiguration).

Dies hängt mit den neuen (sichereren) Standardeinstellungen der ausgelieferten OpenSSH Clients zusammen (u.a. sind „ssh-dss“, „hmac-md5“ und „hmac-sha1“ deaktiviert.).

Es gibt verschiedene Wege diese Problematik zu beheben: Workaround oder nachhaltige Lösung (ASA Enhanced)!

Fehler: "No matching host key type found. Their offer: ssh-dss"

Dies ist exemplarisch die Fehlermeldung, falls der OpenSSH Client „ssh-dss“ nicht zulässt. Der OmniSwitch verwendet standardmäßig einen DSA 1024 Host-Key.

Ab AOS 6.7.2.R01 verwendet der OmniSwitch standardmäßig einen ssh-rsa Key und die hier beschriebene Herausforderung tritt nicht mehr auf.

BennyE$ ssh admin@192.168.20.24
Unable to negotiate with 192.168.20.24 port 22: no matching host key type found. Their offer: ssh-dss

Workaround: "ssh-dss" selektiv erlauben

Achtung: Einige Anleitungen im Internet empfehlen diese Änderung in der /etc/ssh_config unter host * vorzunehmen, wodurch sie für alle Benutzer des Systems und Zielsysteme gilt. Ein granularer Ansatz für einzelne Komponenten/Switches (wie hier beschrieben) ist dem globalgalaktischen Ansatz vorzuziehen!

BennyE$ cat .ssh/config 

Host 192.168.20.24
    HostKeyAlgorithms ssh-dss
    # hmac-sha2-256 sicherstes Verfahren
    MACs hmac-sha2-256,hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96

Nachhaltige Lösung: ASA Enhanced

In den meisten Fällen ist es besser AOS >= 6.7.2.R01 einzusetzen um die Fehlermeldung bzgl. ssh-dss zu beheben. Der ASA-Enhanced Modus empfiehlt sich nur für sehr sicherheitskritische Bereiche.

Der nachhaltige Lösungsansatz sieht vor, dass der OmniSwitch im „ASA Enhanced“-Modus betrieben wird. Dadurch steht SSH mit RSA 2048 Host-Key zur Verfügung.

-> aaa switch-access mode enhanced

Weitere Details zu „ASA Enhanced“ sind hier nachzulesen: Wichtige Information zum "aaa switch-access mode enhanced"

Für den Fall dass es beim Verbindungsversuch die Corrupted MAC on input.-Fehlermeldung gibt, dann sorgt folgender Eintrag in der ~/.ssh/config für eine sichere SSH-Verbindung. (Der Fehler kommt vom umac-64@openssh.com MAC der in VxWorks offensichtlich Probleme macht!)

BennyE$ cat .ssh/config 

Host 192.168.20.24
    # In diesem Fall ist es wichtig ssh-dss NICHT zu setzen, wir wollen ja die RSA 2048 Verbindung!
    #HostKeyAlgorithms ssh-dss
    MACs hmac-sha2-256,hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96

Fehler: "Corrupted MAC on input."

Auch das hier beschriebene Thema ist mit dem Einsatz von AOS >= 6.7.2.R01 behoben.

Dies ist exemplarisch die Fehlermeldung, falls der OpenSSH Client z.B. „hmac-md5“ oder „hmac-sha1“ nicht zulässt und deshalb „umac-64@openssh.com“ als MAC verwendet (was offensichtlich unter VxWorks nicht ordentlich funktioniert).

BennyE$ ssh admin@192.168.20.24
Corrupted MAC on input.
Connection to 192.168.20.24 closed by remote host.

Lösung: Sichere MACs verwenden/aktivieren

BennyE$ cat .ssh/config 

Host 192.168.20.24
    # Folgende Zeile nur auskommentieren wenn OmniSwitch im ASA Default Modus laeuft!
    #HostKeyAlgorithms ssh-dss
    MACs hmac-sha2-256,hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96

Weitere Beispielkonfigurationen

Beispiel für Bash-Alias

Mit diesem Bash-Alias kann für einen lokalen Workaround für Einzelsysteme gesorgt werden. Der Verbindungsaufbau erfolgt dann mit Erlaubnis für hmac-sha1 und ssh-dss.

$ alias ssh-switch='ssh -m hmac-sha1 -oHostKeyAlgorithms=+ssh-dss'

Beispiel für mehrere einzelne Einträge

BennyE$ cat .ssh/config 

Host 192.168.20.24
    # Folgende Zeile nur auskommentieren wenn OmniSwitch im ASA Default Modus laeuft!
    #HostKeyAlgorithms ssh-dss
    MACs hmac-sha2-256,hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96

Host 192.168.20.25
    # Folgende Zeile nur auskommentieren wenn OmniSwitch im ASA Default Modus laeuft!
    #HostKeyAlgorithms ssh-dss
    MACs hmac-sha2-256,hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96

Host 192.168.20.26
    # Folgende Zeile nur auskommentieren wenn OmniSwitch im ASA Default Modus laeuft!
    #HostKeyAlgorithms ssh-dss
    MACs hmac-sha2-256,hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96

Beispiel für ein komplettes Subnetz

BennyE$ cat .ssh/config 

Host 192.168.20.*
    # Folgende Zeile nur auskommentieren wenn OmniSwitch im ASA Default Modus laeuft!
    #HostKeyAlgorithms ssh-dss
    MACs hmac-sha2-256,hmac-sha1,hmac-md5,hmac-sha1-96,hmac-md5-96

Secure Copy (SCP)

Fehler: "exec request failed on channel 0"

Zwischen macOS (Sierra) und einem ALE OmniSwitch mit AOS Release 6 kommt bei Verwendung von SCP zu folgender Fehlermeldung. Dies gilt auch für Windows mit z.B. WinSCP, allerdings schlägt hier der Verbindungsaufbau nach einiger Zeit ohne weitere Fehlermeldung fehl.

BennyE$ scp -v admin@192.168.20.24:/flash/switch/snmp.engine .
admin's password for keyboard-interactive method: 
 
exec request failed on channel 0

Workaround: Verwendung von sftp

Oft wird behauptet mit sftp könnte man die Datei nicht direkt herunterladen, was nicht korrekt ist. Folgendes Kommando führt analog den gleichen Befehl aus.

BennyE$ sftp admin@192.168.20.24:/flash/switch/snmp.engine .
admin's password for keyboard-interactive method: 
 
Connected to 192.168.20.24.
Fetching /flash/switch/snmp.engine to ./snmp.engine
/flash/switch/snmp.engine                                                                                    100%   20     0.0KB/s   00:00    
Received disconnect from 192.168.20.24 port 22:2: ssh connection closed by server
Disconnected from 192.168.20.24 port 22
BennyE$
BennyE$ hexdump -C snmp.engine 
00000000  00 00 00 1a 00 0b 80 00  19 56 03 e8 e7 32 90 62  |.........V...2.b|
00000010  23 60 79 74                                       |#`yt|
00000014

SFTP: Eine Datei hochladen

Soll von lokal eine Datei auf dem OmniSwitch hochgeladen werden, dann kann dies wie folgt erledigt werden.

BennyE$ sftp admin@192.168.10.2:/flash/switch/ <<< $'put testdatei.txt'
admin's password for keyboard-interactive method: 
Connected to 192.168.10.2.
Changing to: /flash/switch/
sftp> put testdatei.txt
Uploading testdatei.txt to /flash/switch/testdatei.txt
testdatei.txt                               100%  178KB  67.1KB/s   00:02    
Received disconnect from 192.168.10.2 port 22:2: ssh connection closed by server
Disconnected from 192.168.10.2 port 22