SSH-Schlüssel
Was sind SSH-Schlüssel?

SSH-Schlüssel sind Zugangsdaten, die im SSH-Protokoll (Secure Shell) verwendet werden. Ein Secure Shell ist ein Netzwerkprotokoll, das sicheres Einloggen von einem Computer auf einen anderen sowie die Verwaltung von Netzwerken, Betriebssystemen und Konfigurationen ermöglicht. Funktionell sind SSH-Schlüssel Passwörtern sehr ähnlich, aber die Anmeldung an einem Server mit SSH-Schlüsseln ist sicherer als die Verwendung von nur Passwörtern, da das Entschlüsseln des Schlüssels sehr schwierig, fast unmöglich ist.
SSH-Schlüssel kommen immer in Paaren vor, und jedes dieser Paare besteht aus einem öffentlichen Schlüssel und einem privaten Schlüssel. Dies sind zwei Arten von Schlüsseln.
- Öffentliche Schlüssel, auch als autorisierte Schlüssel bekannt, bestimmen, wer Zugriff auf jedes System hat.
- Private oder Identitätsschlüssel identifizieren Benutzer und gewähren ihnen Zugriff.
Wie richtet man SSH-Schlüssel ein?
Für die Generierung von SSH-Schlüsseln werden Public-Key-Kryptographiealgorithmen benötigt, wobei Ed25519 und RSA am häufigsten verwendet werden. SSH-Schlüssel werden mithilfe eines Schlüsselerzeugungstools eingerichtet.
Erstellen eines SSH-Schlüssels auf Mac und Linux
Da diese beiden Betriebssysteme über moderne Terminalanwendungen verfügen, die mit dem SSH-Paket kombiniert werden, sind die Schritte zum Erstellen eines SSH-Schlüssels für beide gleich.
- Öffnen Sie ein Befehlszeilenterminal und führen Sie Folgendes aus:
SSH-Schlüssel einrichten
ssh-keygen -t ed25519 -C "[email protected]"- Anschließend müssen Sie den Dateispeicherort auswählen.
SSH-Schlüssel speichern
> Enter a file in which to save the key (~/.ssh/id_ed25519): [Press enter]- Anschließend sollten Sie eine sichere Passphrase hinzufügen, die jedes Mal erforderlich ist, wenn der SSH-Schlüssel verwendet wird.
SSH-Schlüssel-Passwort festlegen
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]- Fügen Sie den neuen SSH-Schlüssel zum ssh-agent hinzu. Der ssh-agent ist ein Tool, das für das Speichern privater Schlüssel verantwortlich ist, aber auch Signaturanfragen mit privaten Schlüsseln für Sicherheitszwecke verarbeitet.
Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der ssh-agent ausgeführt wird:
SSH-Schlüssel unter Linux
eval "$(ssh-agent -s)"
> Agent pid 59566Wenn der ssh-agent ausgeführt wird, fügen Sie den neuen SSH-Schlüssel zum lokalen SSH-Agent hinzu, indem Sie den folgenden Befehl ausführen:
SSH-Schlüssel
ssh-add ~/.ssh/id_ed25519(Note: On modern macOS (OpenSSH 8.8+), ssh-add -K is deprecated. Instead, add AddKeysToAgent yes to your ~/.ssh/config file to automatically persist keys in the keychain.)
- Kopieren Sie den öffentlichen Schlüssel auf den Remote-Server. Um den Schlüssel zur Authentifizierung zu verwenden, müssen Sie ihn zur
~/.ssh/authorized_keys-Datei des Remote-Servers hinzufügen. Führen Sie den folgenden Befehl von Ihrem lokalen Computer aus:
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote_host- Überprüfen Sie die Verbindung. Testen Sie, ob Sie sich mit Ihrem neuen Schlüssel am Remote-Server anmelden können:
ssh user@remote_hostErstellen eines SSH-Schlüssels unter Windows
Sie benötigen Git Bash, um einen SSH-Schlüssel unter Windows zu erstellen. Öffnen Sie Git Bash und führen Sie den folgenden Befehl zur Generierung des Schlüssels aus:
ssh-keygen -t ed25519 -C "[email protected]"Befolgen Sie dieselben Eingabeaufforderungen wie oben, um den Dateispeicherort und die Passphrase festzulegen. Kopieren Sie den generierten Schlüssel nach der Erstellung auf Ihren Remote-Server oder Ihren Git-Hosting-Dienst, indem Sie den Befehl ssh-copy-id verwenden oder den Inhalt von id_ed25519.pub in die SSH-Schlüsseleinstellungen des Dienstes einfügen.
Praxis
Was sind wichtige Aspekte von SSH-Schlüsseln im Kontext von Git?