Auf der GitHub Seite gibt es einen Link ...
https://help.github.com/articles/generating-ssh-keys
... und es heißt ...
Wenn Sie sich entschieden haben, die empfohlene HTTPS-Methode nicht zu verwenden, können wir SSH-Schlüssel verwenden, um eine sichere Verbindung zwischen Ihrem Computer und GitHub herzustellen. Die folgenden Schritte führen Sie durch das Generieren eines SSH-Schlüssels und das Hinzufügen des öffentlichen Schlüssels zu Ihrem GitHub-Konto.
Warum ist HTTPS die empfohlene Methode? Gibt es eine Sicherheitslücke in der SSH-Methode oder ist sie langsamer? Ich habe einen SSH-Schlüssel erstellt. Würde dies Sicherheitsbedenken abmildern?
Antworten:
GitHub hat seine Empfehlung mehrmals geändert ( Beispiel ).
Es scheint, dass sie derzeit HTTPS empfehlen, da es am einfachsten in den unterschiedlichsten Netzwerken und Plattformen und von Benutzern eingerichtet werden kann, die mit all dem noch nicht vertraut sind.
Es gibt keinen inhärenten Fehler in SSH (wenn es einen gäbe, würden sie ihn deaktivieren) - in den folgenden Links werden Sie sehen, dass sie auch weiterhin Details zu SSH-Verbindungen enthalten:
Es ist weniger wahrscheinlich, dass HTTPS von einer Firewall blockiert wird.
https://help.github.com/articles/which-remote-url-should-i-use/
Über eine HTTPS-Verbindung können Sie
credential.helper
Ihr Kennwort zwischenspeichern.https://help.github.com/articles/set-up-git
quelle
ssh-agent
? Meinetwegen. Vielen Dank!Ich gehe davon aus, dass HTTPS aus mehreren Gründen von GitHub empfohlen wird
1) Die Verwendung von überall ist einfacher, da Sie nur Ihre Kontodaten benötigen (keine SSH-Schlüssel erforderlich).
2) HTTPS ist ein Port, der in allen Firewalls geöffnet ist. SSH ist nicht immer als Port für die Kommunikation mit externen Netzwerken geöffnet
Ein GitHub-Repository ist daher mit HTTPS universeller zugänglich als mit SSH.
Meiner Ansicht nach sind SSH-Schlüssel die kleine zusätzliche Arbeit wert, um sie zu erstellen
1) SSH-Schlüssel bieten keinen Zugriff auf Ihr GitHub-Konto, sodass Ihr Konto nicht entführt werden kann, wenn Ihr Schlüssel gestohlen wird.
2) Die Verwendung einer starken Schlüsselphrase mit Ihrem SSH-Schlüssel begrenzt jeglichen Missbrauch, selbst wenn Ihr Schlüssel gestohlen wird
Wenn Ihre Anmeldeinformationen für das GitHub-Konto (Benutzername / Passwort) gestohlen werden, kann Ihr GitHub-Passwort geändert werden, um den Zugriff zu blockieren, und alle freigegebenen Repositorys können schnell gelöscht werden.
Wenn ein privater Schlüssel gestohlen wird, kann jemand einen erzwungenen Push eines leeren Repositorys durchführen und den gesamten Änderungsverlauf für jedes Repository löschen, das Sie besitzen, kann jedoch nichts in Ihrem GitHub-Konto ändern. Es ist viel einfacher, die Wiederherstellung nach dieser Verletzung zu versuchen, wenn Sie Zugriff auf Ihr GitHub-Konto haben.
Ich bevorzuge die Verwendung von SSH mit einem passphrasengeschützten Schlüssel. Ich habe für jeden Computer einen anderen SSH-Schlüssel. Wenn dieser Computer gestohlen oder der Schlüssel kompromittiert wird, kann ich mich schnell bei GitHub anmelden und diesen Schlüssel löschen, um unerwünschten Zugriff zu verhindern.
SSH kann über HTTPS getunnelt werden, wenn das Netzwerk, in dem Sie sich befinden, den SSH-Port blockiert.
https://help.github.com/articles/using-ssh-over-the-https-port/
Wenn Sie HTTPS verwenden, würde ich empfehlen, eine Zwei-Faktor-Authentifizierung hinzuzufügen, um Ihr Konto sowie Ihre Repositorys zu schützen.
Wenn Sie HTTPS mit einem Tool (z. B. einem Editor) verwenden, sollten Sie ein Entwicklertoken aus Ihrem GitHub-Konto verwenden, anstatt den Benutzernamen und das Kennwort in dieser Toolkonfiguration zwischenzuspeichern.
quelle
Entweder zitieren Sie falsch oder Github hat auf verschiedenen Seiten unterschiedliche Empfehlungen, oder sie haben mit der Zeit gelernt und ihre Empfehlung aktualisiert.
Wir empfehlen dringend, bei der Interaktion mit GitHub eine SSH-Verbindung zu verwenden. SSH-Schlüssel sind eine Möglichkeit, vertrauenswürdige Computer ohne Kennwörter zu identifizieren. Die folgenden Schritte führen Sie durch das Generieren eines SSH-Schlüssels und das Hinzufügen des öffentlichen Schlüssels zu Ihrem GitHub-Konto.
https://help.github.com/articles/generating-ssh-keys
quelle
Aktivieren von SSH-Verbindungen über HTTPS, wenn diese von der Firewall blockiert werden
Testen Sie, ob SSH über den HTTPS-Port möglich ist, und führen Sie diesen SSH-Befehl aus:
Wenn das funktioniert hat, großartig! Wenn nicht, müssen Sie möglicherweise unsere Anleitung zur Fehlerbehebung befolgen .
Wenn Sie
[email protected]
über Port 443 SSH-fähig sind, können Sie Ihre SSH-Einstellungen überschreiben, um zu erzwingen, dass eine Verbindung zu GitHub über diesen Server und Port ausgeführt wird.Um dies in Ihrer SSH-Konfiguration festzulegen, bearbeiten Sie die Datei unter
~/.ssh/config
und fügen Sie diesen Abschnitt hinzu:Sie können testen, ob dies funktioniert, indem Sie erneut eine Verbindung zu GitHub herstellen:
Von der Authentifizierung bei GitHub / Verwendung von SSH über den HTTPS-Port
quelle
Siehe auch: die offizielle Welche Remote-URL soll ich verwenden? Antwort auf help.github.com.
BEARBEITEN:
Es scheint, dass es nicht länger erforderlich ist, Schreibzugriff auf ein öffentliches Repo zu haben, um eine SSH-URL zu verwenden, was meine ursprüngliche Erklärung ungültig macht.
ORIGINAL:
Anscheinend ist der Hauptgrund für die Bevorzugung von HTTPS-URLs, dass SSH-URLs mit einem öffentlichen Repo nicht funktionieren, wenn Sie keinen Schreibzugriff auf dieses Repo haben.
Die Verwendung von SSH-URLs für die Bereitstellung auf Produktionsservern wird jedoch empfohlen - vermutlich handelt es sich hier um Dienste wie Heroku.
quelle
Es ist möglich zu argumentieren, dass die Verwendung des SSH-Schlüssels zur Authentifizierung weniger sicher ist, da wir unser Kennwort in der Regel häufiger ändern als neue SSH-Schlüssel generieren.
Server, die die Lebensdauer begrenzen, für die sie bestimmte SSH-Schlüssel einhalten, können dazu beitragen, Benutzer dazu zu zwingen, SSH-Schlüssel regelmäßig zu aktualisieren.
quelle
Vielleicht, weil es schwieriger ist, ein Passwort aus Ihrem Gehirn zu stehlen, als eine Schlüsseldatei von Ihrem Computer zu stehlen (zumindest meines Wissens existieren möglicherweise bereits einige Substanzen oder Methoden, aber dies ist eine unendliche Diskussion)? Und wenn Sie den Schlüssel mit einem Passwort schützen, verwenden Sie erneut ein Passwort und es treten dieselben Probleme auf (einige argumentieren jedoch möglicherweise, dass Sie mehr Arbeit leisten müssen, da Sie den Schlüssel erhalten und dann das Passwort knacken müssen).
quelle