Close

Was ist ein Git-SSH-Schlüssel?

Ein SSH-Schlüssel ist ein Zugriffsberechtigungsnachweis für das SSH-Netzwerkprotokoll (Secure Shell). Dieses authentifizierte und verschlüsselte sichere Netzwerkprotokoll wird für die Remote-Kommunikation zwischen Computern in einem ungesicherten offenen Netzwerk verwendet. SSH kommt bei der Remote-Dateiübertragung, dem Netzwerkmanagement und dem Remote-Betriebssystemzugriff zum Einsatz. Das Akronym SSH wird außerdem zur Beschreibung einer Reihe von Tools genutzt, die für die Interaktion mit dem SSH-Protokoll verwendet werden.

SSH verwendet ein Schlüsselpaar, um einen sicheren Handshake zwischen Remote-Parteien zu initiieren. Das Schlüsselpaar enthält einen öffentlichen und einen privaten Schlüssel. Dass beides als Schlüssel bezeichnet wird, kann verwirrend sein. Deshalb solltest du dir den öffentlichen Schlüssel als "Schloss" und den privaten Schlüssel als "Schlüssel" vorstellen. Du stellst Remote-Parteien also das öffentliche "Schloss" zur Verfügung, um Daten zu verschlüsseln oder zu "sperren". Diese Daten werden dann mit dem "privaten" Schlüssel geöffnet, den du an einem sicheren Ort aufbewahrst.


So erstellst du einen SSH-Schlüssel


SSH-Schlüssel werden durch einen kryptografischen Algorithmus mit öffentlichen Schlüsseln generiert, wobei der gebräuchlichste RSA oder DSA ist. SSH-Schlüssel werden auf einer sehr hohen Ebene durch eine mathematische Formel erstellt, die zwei Primzahlen und eine zufällige Startvariable benötigt, um den öffentlichen und privaten Schlüssel ausgeben zu können. Dies ist eine Einwegformel, die sicherstellt, dass der öffentliche Schlüssel vom privaten Schlüssel abgeleitet werden kann, der private Schlüssel jedoch nicht vom öffentlichen.

SSH-Schlüssel werden mit einem Tool zur Schlüsselgenerierung erstellt. Die SSH-Befehlszeilen-Tool-Suite enthält ein Keygen-Tool. Die meisten Git-Hosting-Anbieter bieten Anleitungen zum Erstellen eines SSH-Schlüssels an.

Generiere einen SSH-Schlüssel in Mac und Linux

Sowohl OS X- als auch Linux-Betriebssysteme verfügen über umfassende moderne Terminalanwendungen, die mit der installierten SSH-Suite ausgeliefert werden. Der Vorgang zum Erstellen eines SSH-Schlüssels ist bei beiden gleich.

1. Führe Folgendes aus, um mit der Schlüsselerstellung zu beginnen

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Git-Logo
Zugehöriges Material

Git-Merkzettel

Bitbucket-Logo
Lösung anzeigen

Git kennenlernen mit Bitbucket Cloud

Mit diesem Befehl wird ein neuer SSH-Schlüssel erstellt, wobei die E-Mail-Adresse als Label verwendet wird.

2. Danach wirst du aufgefordert, eine Datei anzugeben, in der der Schlüssel gespeichert werden soll.
Du kannst einen Dateispeicherort festlegen oder die Eingabetaste drücken, um den Standardspeicherort zu übernehmen.

> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

3. Bei der nächsten Eingabeaufforderung wirst du nach einer sicheren Passphrase gefragt. Eine Passphrase macht das SSH noch sichererer und ist immer dann erforderlich, wenn der SSH-Schlüssel verwendet wird. Wenn jemand Zugriff auf den Computer erhält, auf dem private Schlüssel gespeichert sind, kann er auch Zugriff auf jedes System erhalten, das diese Schlüssel verwendet. Durch das Hinzufügen einer Passphrase zu Schlüsseln kann dieses Szenario verhindert werden.

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

Zum jetzigen Zeitpunkt wurde ein neuer SSH-Schlüssel am zuvor angegebenen Dateipfad generiert.

4. Füge den neuen SSH-Schlüssel zum SSH-Agenten hinzu

Der SSH-Agent ist ein weiteres Programm, das Teil der SSH-Toolsuite ist. Der SSH-Agent ist für die Aufbewahrung von privaten Schlüsseln verantwortlich. Du kannst ihn dir als einen Schlüsselbund vorstellen. Er bewahrt nicht nur private Schlüssel auf, sondern vermittelt auch Anforderungen zum Signieren von SSH-Anfragen mit den privaten Schlüsseln, sodass private Schlüssel niemals auf unsichere Weise weitergegeben werden.

Vor dem Hinzufügen des neuen SSH-Schlüssels zum SSH-Agenten solltest du sicherstellen, dass der SSH-Agent auch läuft. Führe dazu Folgendes aus:

$ eval "$(ssh-agent -s)"
> Agent pid 59566

Sobald der SSH-Agent ausgeführt wird, wird der neue SSH-Schlüssel mithilfe des folgenden Befehls zum lokalen SSH-Agenten hinzugefügt.

ssh-add -K /Users/you/.ssh/id_rsa

Der neue SSH-Schlüssel ist jetzt registriert und einsatzbereit!

Generiere einen SSH-Schlüssel in Windows


Windows-Umgebungen haben keine standardmäßige Unix-Shell. Daher müssen für eine umfassende Schlüsselgenerierung externe Shell-Programme installiert werden. Die einfachste Option ist die Verwendung von Git Bash. Sobald Git Bash installiert ist, können in der Git-Bash-Shell dieselben Schritte wie bei Linux und Mac ausgeführt werden.

Windows-Linux-Teilsystem


Moderne Windows-Umgebungen verfügen über ein Windows-Linux-Teilsystem. Dieses bietet eine vollständige Linux-Shell in einer herkömmlichen Windows-Umgebung. Wenn ein Linux-Teilsystem verfügbar ist, können dieselben Schritte, die zuvor für Linux und Mac beschrieben wurden, im Windows-Linux-Teilsystem befolgt werden.

Zusammenfassung


SSH-Schlüssel werden verwendet, um sichere Verbindungen zu authentifizieren. Wenn du diesem Leitfaden folgst, kannst du einen SSH-Schlüssel erstellen und verwenden. Git kann SSH-Schlüssel anstelle der herkömmlichen Passwortauthentifizierung verwenden, wenn Übertragungen auf Remote-Repositorys per Push und Pull erfolgen. Moderne gehostete Git-Lösungen wie Bitbucket unterstützen die SSH-Schlüsselauthentifizierung.


Diesen Artikel teilen
Nächstes Thema

Lesenswert

Füge diese Ressourcen deinen Lesezeichen hinzu, um mehr über DevOps-Teams und fortlaufende Updates zu DevOps bei Atlassian zu erfahren.

Mitarbeiter arbeiten mit unzähligen Tools zusammen

Bitbucket-Blog

Abbildung: DevOps

DevOps-Lernpfad

Demo Den: Feature-Demos mit Atlassian-Experten

So funktioniert Bitbucket Cloud mit Atlassian Open DevOps

Melde dich für unseren DevOps-Newsletter an

Thank you for signing up