Ich bin unter einem Proxy und pushe schon seit geraumer Zeit erfolgreich in git.
Jetzt kann ich plötzlich nicht mehr in git pushen.
Ich habe den RSA-Schlüssel und den Proxy gesetzt und sie doppelt überprüft, jedoch ohne Erfolg, und git wirft mir den im Titel der Seite angezeigten Fehler aus.
Antworten
Zu viele Anzeigen?Was es für mich gelöst hat, war ssh-add
auf der Schlüsseldatei auszuführen.
ssh-add C:/Path/To/Key.pem
C:/Users/User/.ssh/config:
Host sshapp
Hostname ssh.github.com
IdentityFile C:/Path/To/Key.pem
Port 443
Dann klonen mit:
>git clone git@sshapp:/app.git
Cloning into 'app'...
The authenticity of host '[ssh.github.com]:443 ([140.82.121.35]:443)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6T.....vCOqU.
Ich hatte dieses Problem, als ich über das WLAN einer öffentlichen Bibliothek gearbeitet habe.
Wenn Sie PowerShell ausführen test-netconnection github.com -port 22
, zeigte sich, dass ausgehende Verbindungen auf diesem Port blockiert wurden (viele Orte scheinen nur HTTP-Ports zuzulassen; d.h. 80
und 443
).
Zum Glück ermöglicht es GitHub auch, auf SSH über Port 443 zuzugreifen: Dokumentation
Statt git clone git@github.com:myOrg/myRepo.git
auszuführen, machen Sie die folgenden Anpassungen:
- Fügen Sie
ssh://
am Anfang der URL hinzu - Verbinden Sie sich mit dem
ssh
Subdomäne (d.h.ssh.github.com
anstelle von nurgithub.com
) - Fügen Sie den Port nach dem Hostnamen hinzu: d.h.
:443
. - Ändern Sie den Doppelpunkt vor Ihrem Org/Benutzernamen in einen Schrägstrich.
Also für das obige Beispiel würden Sie ausführen: git clone ssh://git@ssh.github.com:443/myOrg/myRepo.git
Dies kann eine Warnung über die Authentizität des Hosts geben; aber (vorausgesetzt, Sie sind zufrieden*), das Beantworten von YES
erlaubt es, den Befehl auszuführen. Um zu entscheiden, ob Sie mit JA antworten sollten, überprüfen Sie den Fingerabdruck, der in dieser Warnung angegeben ist, mit den veröffentlichten Fingerabdrücken von GitHub.
Also hatte ich dasselbe Problem (nicht hinter einem Proxy) und stieß auf diese Frage. Hier ist, was ich getan habe, um es zu beheben:
Versuchte, ssh -T git@github.com
auszuführen und es konnte nicht durchgeführt werden, aber das Hinzufügen von -o KexAlgorithms=ecdh-sha2-nistp521
führte zu einer erfolgreichen Verbindung (gefunden in dieser Antwort auf eine halbwegs verwandte Frage).
Um dies dauerhaft zu beheben, habe ich einfach eine Zeile KexAlgorithms=ecdh-sha2-nistp521
unter github.com
in meiner ~/.ssh/config
hinzugefügt. Alles scheint jetzt gut zu funktionieren.