Stellen Sie sich vor: Sie sitzen vor Ihrem Rechner, möchten sich wie gewohnt per SSH mit Ihrem Server verbinden, tippen den Befehl ein und statt des ersehnten Prompts erscheint eine kryptische Fehlermeldung: „Corrupted MAC on Input„. Ein Schauer läuft Ihnen über den Rücken. Was bedeutet das? Ist Ihr Server kompromittiert? Ist Ihr Netzwerk unsicher? Keine Panik! Dieser Fehler ist zwar ärgerlich, aber in den meisten Fällen weder ein Indikator für eine Sicherheitsverletzung noch ein unlösbares Problem. Er signalisiert lediglich, dass während der Übertragung von Datenpaketen zwischen Ihrem SSH-Client und dem Server etwas schiefgelaufen ist. Doch keine Sorge, wir führen Sie Schritt für Schritt durch die Ursachen und präsentieren Ihnen die Lösungen!
Was bedeutet „Corrupted MAC on Input”?
Um die Fehlermeldung zu verstehen, müssen wir uns kurz mit der Funktionsweise von SSH auseinandersetzen. SSH (Secure Shell) ist das Rückgrat vieler IT-Infrastrukturen und ermöglicht eine sichere, verschlüsselte Kommunikation über unsichere Netzwerke. Ein entscheidender Bestandteil dieser Sicherheit ist der Message Authentication Code (MAC).
Ein MAC ist im Wesentlichen ein kryptografischer Prüfsummenwert, der an jedes Datenpaket angehängt wird, das über die SSH-Verbindung gesendet wird. Der Sender berechnet diesen Code anhand des Inhalts des Pakets und eines geheimen Schlüssels und sendet ihn mit dem Paket mit. Der Empfänger (egal ob Client oder Server) berechnet den MAC-Wert ebenfalls mit demselben Schlüssel und vergleicht ihn mit dem empfangenen MAC. Stimmen die beiden Werte überein, weiß der Empfänger, dass das Datenpaket während der Übertragung nicht manipuliert wurde und intakt ist.
Die Fehlermeldung „Corrupted MAC on Input” bedeutet also: Der SSH-Client (oder der Server, je nachdem, wo der Fehler auftritt und gemeldet wird) hat ein Datenpaket empfangen, dessen berechneter MAC-Wert nicht mit dem empfangenen MAC-Wert übereinstimmt. Vereinfacht ausgedrückt: Das Paket ist auf dem Weg beschädigt oder verändert worden, oder es gab ein Problem bei der Berechnung des MAC-Wertes selbst.
In den allermeisten Fällen ist dies kein Zeichen für einen aktiven Angreifer, der versucht, Ihre Daten zu manipulieren, sondern eher für ein Problem in der Übertragung. Es ist die eingebaute Sicherheitsfunktion von SSH, die anschlägt und die Verbindung abbricht, um die Übertragung potenziell beschädigter oder manipulierter Daten zu verhindern.
Häufige Ursachen für „Corrupted MAC on Input”
Der Fehler kann durch eine Vielzahl von Faktoren verursacht werden, die von Netzwerkkonfigurationen bis hin zu Softwarefehlern reichen. Hier sind die gängigsten Übeltäter:
- Netzwerkinstabilität und Paketverlust: Dies ist die häufigste Ursache. Eine unzuverlässige Netzwerkverbindung (z.B. über WLAN, VPN, schlechte Kabelverbindung), die zu Paketverlusten oder -beschädigungen führt, kann dazu führen, dass der MAC-Wert nicht mehr zum Paketinhalt passt.
- Falsche MTU-Einstellungen (Maximum Transmission Unit): Wenn die MTU-Einstellung auf Ihrem Client oder einem Gerät im Netzwerkpfad zu hoch ist, können Datenpakete fragmentiert werden müssen. Dieser Prozess kann fehlschlagen oder zu beschädigten Paketen führen, die den MAC-Fehler verursachen.
- Veraltete SSH-Client- oder Server-Software: Ältere Versionen von OpenSSH können Fehler enthalten oder bestimmte MAC-Algorithmen verwenden, die auf der Gegenseite nicht mehr unterstützt oder als unsicher eingestuft werden. Inkompatibilitäten können ebenfalls zu Problemen führen.
- Fehlkonfigurierte SSH-Einstellungen: Sowohl auf der Client- als auch auf der Serverseite können explizit definierte oder fehlende MAC-Algorithmen zu Konflikten führen, wenn die Aushandlung fehlschlägt.
- Interferenzen durch Netzwerkgeräte: Firewalls, Router, Proxys oder VPN-Gateways, die eine Deep Packet Inspection durchführen oder auf andere Weise Pakete manipulieren, können unbeabsichtigt die Integrität der SSH-Pakete beeinträchtigen.
- GSSAPI-Authentifizierungsprobleme: Gelegentlich kann die GSSAPI-Authentifizierung (Generic Security Service Application Programming Interface) bei bestimmten Konfigurationen Probleme verursachen und zu MAC-Fehlern führen.
- Hardware- oder Dateisystemfehler: Obwohl seltener, können defekte Netzwerkkarten, Speichermodule oder beschädigte Dateisysteme auf Client oder Server dazu führen, dass Daten fehlerhaft verarbeitet oder gesendet werden, was wiederum MAC-Fehler auslöst.
Diagnose: Den Übeltäter eingrenzen
Bevor wir mit den Lösungen beginnen, ist es wichtig, systematisch vorzugehen, um die Ursache einzugrenzen:
- Verwenden Sie den Verbose-Modus: Fügen Sie dem SSH-Befehl die Option
-v
,-vv
oder-vvv
hinzu (z.B.ssh -vvv user@host
). Dies liefert detailliertere Informationen über den Verbindungsaufbau und kann Hinweise auf den genauen Zeitpunkt des Fehlers geben. - Testen Sie von einem anderen Client/Netzwerk: Versuchen Sie, sich von einem anderen Computer oder über eine andere Internetverbindung mit dem Server zu verbinden. Funktioniert es dort, liegt das Problem wahrscheinlich bei Ihrem Client oder Ihrem lokalen Netzwerk.
- Überprüfen Sie Server-Logs: Schauen Sie auf dem Server in die SSH-Logs (meist
/var/log/auth.log
,/var/log/syslog
oder/var/log/secure
, je nach Distribution). Der Server meldet möglicherweise auch einen Fehler, der Aufschluss gibt. - Einfache Konnektivitätsprüfung: Pingen Sie den Server (
ping host
). Gibt es Paketverluste, ist dies ein starker Hinweis auf Netzwerkprobleme.
Die Lösungen: Schritt für Schritt zum Erfolg
1. Anpassung der MAC-Algorithmen (Client-Seite)
Manchmal liegt das Problem darin, dass Client und Server sich nicht auf einen kompatiblen und zuverlässigen MAC-Algorithmus einigen können. Sie können Ihren SSH-Client zwingen, bestimmte Algorithmen zu verwenden.
Temporäre Lösung (für eine einzelne Verbindung):
Verwenden Sie die -o MACs=
Option mit einer Liste gängiger und robuster Algorithmen. Eine gute Startliste ist:
ssh -o [email protected],[email protected],hmac-sha2-512,hmac-sha2-256 user@your_server_ip
Sollte dies nicht helfen, können Sie versuchen, eine breitere Liste von Algorithmen anzugeben. Eine umfassende Liste der auf Ihrem System verfügbaren Algorithmen können Sie mit ssh -Q mac
abrufen.
Permanente Lösung (für den Client):
Wenn die temporäre Lösung funktioniert, können Sie diese Einstellung dauerhaft in Ihrer SSH-Konfigurationsdatei (~/.ssh/config
) hinterlegen. Fügen Sie einen Eintrag für den betreffenden Host hinzu:
Host your_server_ip
MACs [email protected],[email protected],hmac-sha2-512,hmac-sha2-256
Oder für alle Hosts:
Host *
MACs [email protected],[email protected],hmac-sha2-512,hmac-sha2-256
Speichern Sie die Datei und versuchen Sie die Verbindung erneut.
2. Überprüfung und Anpassung der MTU (Maximum Transmission Unit)
Eine falsche MTU-Einstellung kann dazu führen, dass Pakete fragmentiert werden und dabei Fehler auftreten. Dies ist besonders häufig bei VPN-Verbindungen oder Netzwerken mit vielen Hops der Fall.
MTU-Test (Linux/macOS):
Verwenden Sie den Ping-Befehl, um die maximale Paketgröße ohne Fragmentierung zu ermitteln. Ersetzen Sie your_server_ip
durch die IP-Adresse Ihres Servers:
ping -c 4 -s 1472 -M do your_server_ip
Erhöhen oder verringern Sie den Wert 1472
schrittweise (1472 Bytes Daten + 28 Bytes IP/ICMP Header = 1500 Bytes Gesamtpaket). Wenn Sie Meldungen wie „Frag needed and DF set” sehen, ist der Wert zu hoch. Finden Sie den größten Wert, der noch funktioniert.
MTU-Test (Windows):
ping -f -l 1472 your_server_ip
Erhöhen oder verringern Sie den Wert 1472
. Die Option -f
verhindert Fragmentierung.
MTU anpassen (Linux):
Haben Sie eine niedrigere MTU gefunden (oft um 1400-1450), können Sie diese auf Ihrer Netzwerkschnittstelle setzen (ersetzen Sie eth0
und 1400
entsprechend):
sudo ip link set dev eth0 mtu 1400
Diese Einstellung ist oft nur temporär und muss ggf. dauerhaft in den Netzwerkkonfigurationen Ihres Systems hinterlegt werden (z.B. in /etc/network/interfaces
oder NetworkManager-Einstellungen). Seien Sie vorsichtig beim Ändern der MTU, da eine falsche Einstellung andere Netzwerkdienste beeinträchtigen kann.
3. Aktualisieren von SSH-Client und Server
Veraltete Software ist eine häufige Ursache für eine Vielzahl von Problemen, einschließlich Inkompatibilitäten bei kryptografischen Algorithmen. Stellen Sie sicher, dass sowohl Ihr Client als auch der Server die neuesten Versionen von OpenSSH verwenden.
Auf Debian/Ubuntu-Systemen (Client & Server):
sudo apt update
sudo apt upgrade openssh-client openssh-server
Auf RHEL/CentOS-Systemen (Client & Server):
sudo yum update openssh
Starten Sie auf dem Server nach dem Upgrade den SSH-Dienst neu:
sudo systemctl restart sshd
4. Überprüfung und Anpassung der SSH-Konfiguration (Server-Seite)
Manchmal sind serverseitige Einstellungen in /etc/ssh/sshd_config
zu restriktiv oder verwenden Algorithmen, die von Ihrem Client nicht unterstützt werden.
Vorgehen:
- Verbinden Sie sich über einen anderen Client (falls möglich) oder über die Serverkonsole.
- Öffnen Sie die Konfigurationsdatei:
sudo nano /etc/ssh/sshd_config
- Suchen Sie nach Zeilen, die mit
MACs
oderKexAlgorithms
beginnen. Kommentieren Sie diese Zeilen testweise aus (fügen Sie ein#
am Anfang der Zeile ein) oder fügen Sie eine breitere Palette von Algorithmen hinzu. Eine sichere und breite Liste ist oft schon standardmäßig in modernen SSH-Versionen enthalten. - Nach Änderungen immer den SSH-Dienst neu starten:
sudo systemctl restart sshd
Wichtiger Hinweis: Seien Sie äußerst vorsichtig bei Änderungen an der sshd_config
! Ein Fehler kann dazu führen, dass Sie den Zugriff auf Ihren Server verlieren. Halten Sie immer eine alternative Zugriffsmethode (z.B. eine VNC-Konsole oder Cloud-Provider-Konsole) bereit.
5. Netzwerkinfrastruktur überprüfen
Firewalls, Proxys, Load Balancer und VPNs können Pakete auf eine Weise beeinflussen, die zu MAC-Fehlern führt. Testen Sie, ob das Problem verschwindet, wenn Sie:
- Ihre VPN-Verbindung deaktivieren (falls aktiv).
- Direkt verbinden, ohne einen Proxy zu nutzen.
- Temporär die lokale Firewall deaktivieren (Windows Firewall, ufw, firewalld) – nur zu Testzwecken!
- Die Logs Ihrer Netzwerkgeräte auf ungewöhnliche Aktivitäten prüfen.
6. Deaktivieren von GSSAPIAuthentication
Die GSSAPI-Authentifizierung kann in seltenen Fällen Konflikte verursachen. Versuchen Sie, sie clientseitig zu deaktivieren.
Temporäre Lösung:
ssh -o GSSAPIAuthentication=no user@your_server_ip
Permanente Lösung (in ~/.ssh/config
):
Host your_server_ip
GSSAPIAuthentication no
7. Überprüfung der Integrität von Dateisystem und Speicher
Dies ist seltener die Ursache, aber Hardwarefehler (defekter RAM) oder ein beschädigtes Dateisystem können Daten in Transit oder auf der Platte korrumpieren.
- Dateisystemprüfung (Server): Booten Sie den Server in den Rescue-Modus und führen Sie
fsck
auf den Dateisystemen durch. - Speichertest (Server): Verwenden Sie Tools wie
memtest86+
, um den Arbeitsspeicher auf Fehler zu prüfen.
8. Versuch mit einem anderen SSH-Client
Manchmal kann es ein spezifisches Problem mit Ihrem bevorzugten SSH-Client sein. Versuchen Sie, sich mit einem alternativen Client zu verbinden, z.B. PuTTY (Windows), MobaXterm (Windows), Termius oder einem generischen OpenSSH-Client auf einer anderen Plattform.
Präventive Maßnahmen
Um zukünftige „Corrupted MAC on Input”-Fehler zu vermeiden, sollten Sie:
- Ihre Systeme (Client & Server) stets auf dem neuesten Stand halten.
- Eine stabile und zuverlässige Netzwerkverbindung gewährleisten.
- Regelmäßig Ihre SSH-Konfigurationen überprüfen und nur sichere, aktuelle Algorithmen zulassen.
- Netzwerkgeräte (Router, Firewalls) korrekt konfigurieren und unnötige Paketmanipulationen vermeiden.
Fazit
Der Fehler „Corrupted MAC on Input” bei SSH ist zwar frustrierend, aber in den meisten Fällen ein lösbares Problem, das auf Netzwerkinstabilität, Konfigurationsfehler oder veraltete Software zurückzuführen ist. Es ist ein wichtiges Sicherheitsmerkmal, das anschlägt, um die Integrität Ihrer Daten zu schützen. Durch systematisches Vorgehen, angefangen bei der Diagnose mit dem Verbose-Modus bis hin zur schrittweisen Anwendung der oben genannten Lösungen, können Sie die Ursache identifizieren und Ihre SSH-Verbindung wiederherstellen.
Denken Sie daran, bei Änderungen an der Serverseite immer vorsichtig zu sein und eine alternative Zugriffsmöglichkeit bereitzuhalten. Mit Geduld und den richtigen Schritten werden Sie bald wieder eine sichere und stabile Verbindung zu Ihrem Server haben!