SSH-Schlüssel-Passphrasen verwenden
Sie können Ihre SSH-Schlüssel schützen und einen Authentifizierungsagenten konfigurieren, damit Sie beim Verwenden Ihrer SSH-Schlüssel nicht jedes Mal Ihre Passphrase erneut eingeben müssen.
Wenn jemand Zugriff auf Ihren Computer erlangt, kann er mit SSH-Schlüsseln zudem auf jedes System zugreifen, das diesen Schlüssel verwendet. Als zusätzliche Sicherheitsebene können Sie Ihrem SSH-Schlüssel eine Passphrase hinzufügen. Mit ssh-agent
können Sie Ihre Passphrase sicher speichern, damit Sie sie nicht erneut eingeben müssen.
Passphrase hinzufügen oder ändern
Durch Eingabe des folgenden Befehls können Sie die Passphrase für einen vorhandenen privaten Schlüssel ändern, ohne das Schlüsselpaar erneut zu genieren:
$ ssh-keygen -p
# Start des Prozesses zur SSH-Schlüsselerstellung
> Enter file in which the key is (/Users/you/.ssh/id_rsa): [Hit enter]> Key has comment '/Users/you/.ssh/id_rsa'
> Enter new passphrase (empty for no passphrase): [Type new passphrase]> Enter same passphrase again: [One more time for luck]> Your identification has been saved with the new passphrase.
Wenn Ihr Schlüssel bereits eine Passphrase aufweist, werden Sie zu ihrer Eingabe aufgefordert, bevor Sie zu einer neuen Passphrase wechseln können.
ssh-agent
auf Git für Windows automatisch starten
Falls Sie die in GitHub Desktop installierte Git-Shell verwenden, müssen Sie die folgenden Schritte nicht durchführen. GitHub Desktop startet ssh-agent
automatisch.
Führen Sie andernfalls die folgenden Schritte aus, um ssh-agent
auszuführen, wenn Sie „bash“ oder „Git shell“ öffnen. Kopieren Sie die folgenden Zeilen, und fügen Sie sie in der Git-Shell in Ihre Datei ~/.profile
oder ~/.bashrc
ein:
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=Agent wird mit Schlüssel ausgeführt; 1=Agent ohne Schlüssel; 2=Agent wird nicht ausgeführt
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi
unset env
Falls Ihr privater Schlüssel nicht an einem der standardmäßigen Speicherorte (~/.ssh/id_rsa
oder ~/.ssh/id_dsa
) gespeichert ist, müssen Sie Ihrem SSH-Authentifizierungsagenten mitteilen, wo er sich befindet. Geben Sie ssh-add ~/path/to/my_key
ein, um „ssh-agent“ Ihren Schlüssel hinzuzufügen. Weitere Informationen finden Sie unter „Einen neuen SSH-Schlüssel generieren und zu ssh-agent hinzufügen“.
Tipp: Falls Sie möchten, dass ssh-agent
Ihren Schlüssel nach einiger Zeit nicht mehr speichern soll, können Sie dies konfigurieren. Führen Sie dazu ssh-add -t <seconds>
aus.
Bei der erstmaligen Ausführung von „Git Bash“ werden Sie nun zur Eingabe Ihrer Passphrase aufgefordert:
> Initializing new SSH agent...
> succeeded
> Enter passphrase for /c/Users/you/.ssh/id_rsa:
> Identity added: /c/Users/you/.ssh/id_rsa (/c/Users/you/.ssh/id_rsa)
> Welcome to Git (version 1.6.0.2-preview20080923)
>
> Run 'git help git' to display the help index.
> Run 'git help ' to display help for specific commands.
Die Ausführung des ssh-agent
-Prozesses wird fortgesetzt, bis Sie sich abmelden, Ihren Computer herunterfahren oder den Prozess beenden.
Ihre Passphrase in der Keychain speichern
Auf OS X Leopard bis OS X El Capitan werden diese standardmäßigen Dateien des privaten Schlüssels automatisch verarbeitet:
.ssh/id_rsa
.ssh/id_dsa
.ssh/identity
Bei der ersten Nutzung Ihres Schlüssels werden Sie zur Eingabe Ihrer Passphrase aufgefordert. Falls Sie die Passphrase mit Ihrer Keychain speichern, müssen Sie sie nicht erneut eingeben.
Andernfalls können Sie Ihre Passphrase in der Keychain speichern, wenn Sie „ssh-agent“ Ihren Schlüssel hinzufügen. Weitere Informationen finden Sie unter „Ihren SSH-Schlüssel zu ssh-agent hinzufügen“.