Sparen Sie Zeit bei der Anmeldung bei GitHub über SSH, indem Sie die passwortlose Authentifizierung verwenden.

Die Authentifizierung bei GitHub erfordert normalerweise die Verwendung eines Zugriffstokens oder Passworts. Diese Methoden können jedoch unpraktisch und unsicher sein, insbesondere wenn von mehreren Geräten aus auf GitHub zugegriffen wird.

GitHub bietet die Möglichkeit, Secure Shell (SSH) zur Authentifizierung zu verwenden. SSH stellt ein sicheres Netzwerkprotokoll für den Fernzugriff auf Maschinen dar. Diese Funktion erweist sich als besonders wertvoll in Situationen, die eine Automatisierung oder häufigen Fernzugriff erfordern.

SSH-Authentifizierung verstehen

Die Authentifizierung mit SSH erfordert die Verwendung von kryptografische Schlüssel um eine sichere Verbindung (Tunnel) zwischen einem Client (lokaler Computer) und einem Server (GitHub) herzustellen.

Bei der Verwendung von SSH für GitHub generiert ein Benutzer ein Paar SSH-Schlüssel – einen öffentlichen Schlüssel und einen privaten Schlüssel. Der öffentliche Schlüssel wird auf das GitHub-Konto des Benutzers hochgeladen, während der private Schlüssel sicher auf dem lokalen Computer des Benutzers gespeichert bleibt.

instagram viewer

Der Vorgang kann mit dem Konzept von Schloss und Schlüssel verglichen werden. Der öffentliche Schlüssel (Schloss) soll offen geteilt und sicher auf der Serverseite gespeichert werden. Er dient als Gegenstück zum privaten Schlüssel und ermöglicht es dem Server, die Identität Ihres lokalen Computers zu überprüfen. Umgekehrt fungiert der private Schlüssel (Schlüssel) als eindeutige Kennung, die ausschließlich auf Ihrem lokalen Computer gespeichert wird und eine erfolgreiche Authentifizierung beim Server ermöglicht.

Bei der Authentifizierung mit GitHub präsentiert Ihr lokaler Computer seinen privaten Schlüssel als Identitätsnachweis. Der Server prüft, ob der entsprechende öffentliche Schlüssel, der Ihrem GitHub-Konto zugeordnet ist, mit dem angegebenen privaten Schlüssel übereinstimmt. Wenn die Schlüssel übereinstimmen, gewährt der Server Zugriff und richtet eine Verbindung ein verschlüsselt und sicher Verbindung zur Kommunikation.

SSH für GitHub einrichten

In diesem Abschnitt erfahren Sie, wie Sie SSH für die Authentifizierung mit GitHub einrichten.

1. Generieren eines SSH-Schlüsselpaars

Der Prozess der Generierung eines SSH-Schlüsselpaars ist der erste Schritt zur Nutzung von SSH zur Authentifizierung.

  1. Öffnen Sie Ihr Terminal oder Ihre Eingabeaufforderung.
  2. Führen Sie den folgenden Befehl aus, um ein neues SSH-Schlüsselpaar zu generieren:
     ssh-keygen -t rsa -b 4096 -C [email protected]
  3. Sie werden aufgefordert, einen Dateispeicherort zum Speichern des Schlüsselpaars einzugeben. Drücken Sie Eingeben, um den Standardspeicherort (~/.ssh/id_rsa) zu akzeptieren oder einen benutzerdefinierten Speicherort anzugeben.
     > Generieren eines öffentlichen/privaten RSA-Schlüsselpaars.
     > Datei eingeben Inwelche So speichern Sie den Schlüssel (/home/vagrant/.ssh/id_rsa):
  4. Als nächstes werden Sie aufgefordert, eine Passphrase einzugeben. Obwohl optional, dient das Hinzufügen einer Passphrase als zusätzliche Sicherheitsebene. Stellen Sie sicher, dass Sie sich Ihr Passwort merken.
     > Passphrase eingeben (leer). für keine Passphrase): 
     > Geben Sie dieselbe Passphrase erneut ein:
  5. Nach der Generierung des Schlüsselpaars sollten am angegebenen Speicherort zwei Dateien angezeigt werden. id_rsa (privater Schlüssel) und id_rsa.pub (Öffentlicher Schlüssel).
     > Ihre Identifikation wurde gespeichert In /home/vagrant/.ssh/id_rsa.
     > Ihr öffentlicher Schlüssel wurde gespeichert In /home/vagrant/.ssh/id_rsa.pub.
  6. Nach Abschluss werden die Tasten Fingerabdruck und Zufallsbild angezeigt.
  7. Zuletzt benötigen Sie den Inhalt des öffentlichen Schlüssels, den Sie zu GitHub hinzufügen möchten. Führen Sie den folgenden Befehl aus, um den Inhalt abzurufen:
     cat ~/.ssh/id_rsa.pub

Stellen Sie sicher, dass Sie den Pfad angeben (in meinem Fall ~/.ssh/id_rsa.pub), den Sie beim Erstellen der Schlüssel verwendet haben.

Kopieren Sie den Inhalt zur späteren Verwendung an einen sicheren und temporären Ort.

2. Hinzufügen des öffentlichen Schlüssels zu GitHub

Nachdem Sie nun ein SSH-Schlüsselpaar generiert haben, müssen Sie den öffentlichen Schlüssel zu Ihrem GitHub-Konto hinzufügen.

  1. Melden Sie sich bei Ihrem GitHub-Konto an und gehen Sie zu Ihrem Konto Einstellungen.
  2. Klicke auf SSH- und GPG-Schlüssel befindet sich in der linken Seitenleiste.
  3. Klicke auf Neuer SSH-Schlüssel.
  4. Geben Sie Ihren SSH-Schlüssel ein Titel.
  5. Fügen Sie den Inhalt des öffentlichen Schlüssels in die ein Taste Feld.
  6. Klicken Sie abschließend auf SSH-Schlüssel hinzufügen um den SSH-Schlüssel in Ihrem GitHub-Konto zu speichern.

Damit haben Sie den öffentlichen Schlüssel erfolgreich in Ihr GitHub-Konto exportiert.

3. Konfigurieren eines SSH-Agenten

Ein SSH-Agent ist ein Programm, das bei der Verwaltung von SSH-Schlüsseln hilft und eine sichere Möglichkeit bietet, diese zu speichern und zu verwenden. Es fungiert während der SSH-Authentifizierung als Vermittler zwischen Ihrem lokalen Computer und dem Remote-Server. Dadurch können Sie mehrere SSH-Schlüssel für verschiedene GitHub-Konten verwalten.

  1. Stellen Sie sicher, dass der SSH-Agent ausgeführt wird.
     $ evalu"$(ssh-agent -s)"
     > Agent-PID 2757
  2. Fügen Sie den privaten Schlüssel zum SSH-Agenten hinzu.
     $ ssh-add ~/.ssh/id_rsa
     > Geben Sie die Passphrase ein für /home/vagrant/.ssh/id_rsa:
     > Identität hinzugefügt: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Sie haben erfolgreich einen SSH-Agenten zur Verwaltung Ihrer Schlüssel konfiguriert.

4. Testen der SSH-Verbindung

Sie können jetzt testen, ob Ihre SSH-Verbindung ordnungsgemäß eingerichtet ist, und Sie können sich mithilfe von SSH bei GitHub authentifizieren.

  • Führen Sie den folgenden Befehl aus, um die SSH-Verbindung zu GitHub zu testen.
     ssh -T [email protected]
    Wenn alles gut geht, wird eine Warnung bezüglich des Fingerabdrucks angezeigt. Bestätigen Sie den Fingerabdruck und geben Sie ihn ein Ja weitermachen.
     > Die Authentizität des Gastgebers 'github.com (140.92.130.4)' dürfennicht festgestellt werden.
    > ECDSA-Schlüsselfingerabdruck ist SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    > Sind Sie sicher, dass Sie das möchten? weitermachen verbinden (ja/nein)?
  • Beim Tippen Ja, sehen Sie eine Ausgabe ähnlich der folgenden.
     > Warnung: Dauerhaft hinzugefügt 'github.com, 140.92.130.4' (ECDSA) zur Liste der bekannten Hosts hinzufügen.
    > Hallo Princewillingoo! DuIch habe mich erfolgreich authentifiziert, aber GitHub bietet keinen Shell-Zugriff.

Dies zeigt, dass die Authentifizierung erfolgreich war.

Verwalten von Repositorys mit SSH

Durch die Konfiguration von SSH können Sie Ihre Repositorys verwalten, ohne sich um die Probleme mit Passwörtern und Zugriffstokens kümmern zu müssen.

Remote-URL festlegen

git remote Satz-URL-Ursprung [email protected]:/.git

Klonen eines Repositorys

Idiot Klon [email protected]:/.git

Änderungen an ein Repository übertragen

Git-Push-Ursprung 

Änderungen aus einem Repository abrufen

Git-Pull-Ursprung 

Vorteile von SSH gegenüber der Passwortauthentifizierung

Die Verwendung von SSH zur Authentifizierung bietet mehrere bemerkenswerte Vorteile gegenüber herkömmlichen passwortbasierten Authentifizierungsmethoden. Das beinhaltet:

  • Durch die SSH-Authentifizierung sind keine Passwörter mehr erforderlich, wodurch das Risiko des Diebstahls von Anmeldeinformationen verringert wird.
  • Die Verwendung kryptografischer Schlüssel macht es immun gegen Brute-Force-Angriffe im Vergleich zu Passwörtern.
  • Wenn Ihr privater Schlüssel kompromittiert ist, können Sie ihn widerrufen und ersetzen, wodurch der kompromittierte Schlüssel unbrauchbar wird.

Aus diesem Grund ist die SSH-Authentifizierung im Vergleich zur Passwortauthentifizierung tendenziell die bessere Option.

Best Practices und Fehlerbehebung

Um eine reibungslose und sichere SSH-Einrichtung zu gewährleisten, ist es notwendig, Best Practices zu befolgen und häufig auftretende Probleme sowie Möglichkeiten zu deren Behebung zu kennen.

  1. Legen Sie immer eine Passphrase fest, um eine zusätzliche Sicherheitsebene zu schaffen.
  2. Üben Sie häufige Schlüsselrotationen und Backups.
  3. Bestätigen Sie jeden Schritt, um Berechtigungsfehler oder eine falsche SSH-Agent-Konfiguration zu vermeiden.

Durch die Einhaltung dieser Best Practices können Sie die SSH-Authentifizierung für GitHub sicher nutzen.

Die Vielseitigkeit von SSH

SSH wird in anderen Bereichen häufig zur Fernverwaltung von Servern, Mikrocontrollern und Netzwerkgeräten verwendet, da es einen sicheren Zugriff ermöglicht zur Befehlszeilenschnittstelle (CLI), sodass Benutzer verschiedene Aufgaben ausführen, Einstellungen konfigurieren, Dateien übertragen und Fehler beheben können Themen.