Haben Sie von asymmetrischer Verschlüsselung (auch als Public-Key-Kryptographie bezeichnet) gehört? Auf dieser Technologie basieren SSH-Schlüssel.
Das Grundkonzept der asymmetrischen Verschlüsselung besteht darin, dass Sie über zwei Kryptografieschlüssel verfügen, bei denen es sich in der Regel um sehr große Zahlen (oder äquivalente lange Binärdatenfolgen) handelt. Jede mit einer von ihnen verschlüsselte Nachricht kann nur mit der anderen entschlüsselt werden - nicht einmal mit dem ursprünglichen Encyption-Schlüssel selbst! Dies ist nützlich, da Sie einen der Schlüssel, den privaten Schlüssel, für sich behalten und den anderen, den öffentlichen Schlüssel, irgendwo online oder an einem beliebigen Ort veröffentlichen können. Benutzer können Nachrichten mit dem öffentlichen Schlüssel verschlüsseln. Sie können darauf vertrauen, dass nur Sie als Inhaber des entsprechenden privaten Schlüssels sie entschlüsseln und ihren Inhalt lesen können. (So funktionieren GPG und PGP und ähnliche Programme, wenn Sie jemals davon gehört haben)
Es stellt sich heraus, dass der Vorgang auch bei umgekehrten Tasten funktioniert. Wenn Sie etwas mit Ihrem privaten Schlüssel verschlüsseln, kann es nur mit dem entsprechenden öffentlichen Schlüssel entschlüsselt werden. Dies kann unbrauchbar erscheinen, da jeder auf der Welt Ihren öffentlichen Schlüssel erhalten und die Nachricht entschlüsseln kann, aber er hat einen sehr nützlichen Nebeneffekt: Er bestätigt, dass die Nachricht von Ihnen stammt . Da sonst niemand auf der Welt Ihren privaten Schlüssel besitzt, könnte niemand eine Nachricht gemacht haben, die mit Ihrem öffentlichen Schlüssel entschlüsselt werden kann.
Wenn Sie darüber nachdenken, dass Sie in der Lage sind zu überprüfen, ob eine Nachricht von Ihnen stammt und nicht von einem Betrüger, ist die Authentifizierung. Jedes Mal, wenn Sie sich mit einem Benutzernamen und einem Kennwort bei einer Website anmelden, geben Sie einige geheime Informationen an, die angeblich nur Ihnen bekannt sind, um zu beweisen, dass die Anmeldeanforderung von Ihnen stammt. Nun, Sie können dasselbe mit Ihrem privaten Schlüssel tun: Verschlüsseln Sie Ihre Login-Anfrage, um zu beweisen, dass sie von Ihnen stammt. Und so funktioniert die SSH-Schlüsselpaarauthentifizierung. Anstatt einen Benutzernamen und ein Kennwort anzugeben, sendet der SSH-Server Ihrem SSH-Client eine Nachricht, die mit Ihrem privaten Schlüssel verschlüsselt werden soll. Der Client verschlüsselt sie, sendet die verschlüsselte Nachricht zurück und der Server entschlüsselt sie mit Ihrem öffentlichen Schlüssel, um sie zu überprüfen. Wenn es die Prüfung bestanden hat, herzlichen Glückwunsch, Sie sind angemeldet!
Ich habe mich (noch) nicht für GitHub angemeldet, daher bin ich nicht mit der genauen Vorgehensweise vertraut, aber ich vermute, wenn sie nach einem fragen username@host
, ist dies nur ein Kommentar, um den jeweiligen Schlüssel zu identifizieren. Wenn Sie sich bei GitHub von verschiedenen Computern aus anmelden, haben Sie für jeden dieser Computer einen anderen privaten SSH-Schlüssel. GitHub muss alle entsprechenden öffentlichen Schlüssel überwachen. Dies username@host
ist eine ziemlich standardisierte Methode zum Kennzeichnen von öffentlichen SSH-Schlüsseln, die von verschiedenen Personen und / oder verschiedenen Hosts stammen.
Übrigens ist es erwähnenswert, dass die Authentifizierung mit SSH-Schlüsselpaaren im Allgemeinen als sicherer gilt als die Authentifizierung mit Benutzername und Kennwort. Der Grund ist, dass, wenn Sie einen Benutzernamen und ein Kennwort zum Anmelden bei einer Website verwenden, diese Informationen mit mindestens einem anderen Computer gemeinsam genutzt werden müssen: dem Webserver, auf dem die Website ausgeführt wird. Die meiste Zeit, das ist in Ordnung, aber es ist immer möglich, dass, wer verantwortlich für die Website, oder auch nur jemanden, den Zugriff auf den Server hat, könnte Ihr Passwort sein Aufnehmen und Verwenden sie hinter dem Rücken Sie zu imitieren. Durch die Verwendung eines privaten / öffentlichen Schlüsselpaares wird diese Möglichkeit ausgeschlossen, da Sie den privaten Schlüssel niemals mit anderen Personen teilenüberhaupt nicht der Server, auf dem Sie sich anmelden. Obwohl der Server (z. B. GitHub) perfekt prüfen kann, ob Sie sich wirklich anmelden, hat er nicht genügend Informationen, um sich als Sie als Benutzer anzumelden.
So erstellen Sie ein SSH-Schlüsselpaar: Ich bin selbst ein Linux-Benutzer, daher bin ich mir nicht sicher, wie es mit der von Windows verwendeten Software gemacht wird. Welches SSH-Client-Programm (PuTTY?) Sie auch verwenden sollten, um ein Schlüsselpaar zu erstellen.