Ein Agent ist ein Programm, das Ihre Schlüssel im Speicher behält, sodass Sie sie nur einmal entsperren müssen , statt jedes Mal. ssh-agent tut dies für SSH-Schlüssel.
Die üblichen Methoden zum Starten von ssh-agent sind:
-
eval `ssh-agent`
– Dies führt den Agenten im Hintergrund aus und setzt die entsprechenden Umgebungsvariablen für den aktuellen Shell-Instanz.(ssh-agent , wenn es ohne Argumente gestartet wird, gibt Befehle aus, die von Ihrer Shell interpretiert werden.)
-
exec ssh-agent bash
– beginnt ein neues Instanz vonbash
Shell, die die aktuelle ersetzt.(Mit einem oder mehreren Argumenten, ssh-agent gibt nichts aus, sondern startet den angegebenen Befehl:in diesem Fall die
bash
Shell, aber technisch könnte es alles sein.)Die zweite Methode wird manchmal bevorzugt, da sie ssh-agent automatisch beendet, wenn Sie das Terminalfenster schließen. (Beim Starten mit
eval
, würde der Agent weiterhin laufen, aber nicht zugänglich sein.)
Dies startet jedoch nur einen leeren Agenten. Um es tatsächlich nützlich zu machen, müssen Sie ssh-add verwenden , wodurch Ihre Schlüssel entsperrt werden (normalerweise ~/.ssh/id_*
) und lädt sie in den Agenten, wodurch sie ssh zugänglich gemacht werden oder sftp Verbindungen.
Außerdem möchten Sie vielleicht einige Schlüssel beim Sitzungsstart hinzufügen.
Bearbeiten Sie Ihre ~/.bashrc
Datei, und fügen Sie hinzu:
ssh-add &>/dev/null || eval `ssh-agent` &>/dev/null # start ssh-agent if not present
[ $? -eq 0 ] && { # ssh-agent has started
ssh-add ~/.ssh/your_private.key1 &>/dev/null # Load key 1
ssh-add ~/.ssh/your_private.key2 &>/dev/null # Load key 2
}
Überprüfen Sie Ihre Schlüssel mit ssh-add -l
Sie können die aktuelle SSH-Agent-Sitzung mit ssh-agent -k
beenden
Etwas, das Sie über ssh-agent und .bashrc wissen sollten, ist, nicht zu viele Schlüssel zu laden. Die Standardanzahl der Versuche für den SSH-Daemon ist auf 6 begrenzt. Dies kann in /etc/ssh/sshd_config
geändert werden mit dem MaxAuthTries
Wert.