Entwickler
SSH und Git laufen auf dem Mac in Timeouts
SSH und Git brauchen eine funktionierende TCP-Verbindung zum Server. Ein Netzwerk, das Port 22 blockiert, ein defekter IPv6-Pfad oder ein Proxy kann sie stoppen.
Symptome
git pushodergit clonewartet und zeigt dann „Operation timed out“.sshzeigt in einem Netzwerk „Connection timed out“, funktioniert aber in einem anderen.- Eine SSH-Sitzung friert nach einigen Minuten ohne Aktivität ein.
- Git-Remotes über HTTPS funktionieren, SSH-Remotes aber nicht.
Mögliche Ursachen
- Port 22 ist blockiert. Manche Firmen-, Hotel- und öffentlichen Netzwerke blockieren SSH. Laut GitHub lehnen Firewalls SSH-Verbindungen manchmal ab.
- Ein defekter IPv6-Pfad. Der Mac versucht es zuerst über IPv6. Funktioniert IPv6 nicht, wartet die Verbindung.
- Inaktive Verbindungen werden geschlossen. Ein Router oder eine Firewall kann eine Verbindung trennen, über die eine Weile keine Daten fließen.
- Ein Proxy ist nötig. Git über HTTPS kann in einem Firmennetzwerk
http.proxyoder Proxy-Variablen brauchen.
So prüfst du es
Verbinde dich mit ausführlicher Ausgabe. Die letzten Zeilen zeigen, wo die Verbindung stoppt.
ssh -vT git@github.comTeste nur den TCP-Port, mit einem Timeout von 5 Sekunden.
nc -vz -G 5 github.com 22Probier es nur mit IPv4. Klappt das, liegt das Problem beim IPv6-Pfad.
ssh -4 -T git@github.comTeste den SSH-Dienst von GitHub auf Port 443.
ssh -T -p 443 git@ssh.github.comZeige die Proxy-Einstellung von Git und deine Proxy-Variablen an.
git config --get http.proxy env | grep -i proxy
So behebst du es
Ist Port 22 blockiert, nutze für GitHub SSH über Port 443. Füge diesen Block zu
~/.ssh/confighinzu.Host github.com Hostname ssh.github.com Port 443 User gitScheitert IPv6, nutze für diesen Host IPv4. Füge
AddressFamily inetzu seinem Block in~/.ssh/confighinzu.Damit inaktive Sitzungen offen bleiben, sende alle 60 Sekunden eine Nachricht. Füge
ServerAliveInterval 60zum Host-Block hinzu.Gegen lange Wartezeiten füge
ConnectTimeout 10zum Host-Block hinzu.Für HTTPS-Remotes hinter einem Proxy setze den Proxy von Git.
git config --global http.proxy http://proxy.example.com:8080Nutze testweise die HTTPS-URL des Repositorys statt der SSH-URL.
Mit Kilobat
Die Verbindungsprüfung von Kilobat testet IPv4 und IPv6 getrennt, sodass ein defekter IPv6-Pfad eine klare Antwort bekommt.
kilobat why github.comDie offenen Verbindungen eines Prozesses anzeigen.
kilobat destinations --pid 12345
Fragen
Warum funktioniert ssh -4, normales ssh aber nicht?
Der Mac hat es zuerst über IPv6 versucht, und der IPv6-Pfad hat nicht funktioniert. Mit -4 nutzt ssh nur IPv4.
Was bewirkt ServerAliveInterval?
ssh sendet eine Nachricht durch die Verbindung, wenn so viele Sekunden lang keine Daten geflossen sind. Der Standardwert ist 0, dann wird nichts gesendet.
Quellen
- GitHub Docs: SSH über den HTTPS-Port verwenden
- ssh(1) und ssh_config(5), Manpages aus macOS 27.2
- nc(1), Manpage aus macOS 27.2
- git-config(1), http.proxy, mit macOS 27.2 installierte Manpage (Git 2.56)
Quellen geprüft am 29. Oktober 2026. Die Manpages sind die mit macOS installierten; öffne eine mit man <name> im Terminal.