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 vonbashShell, die die aktuelle ersetzt.(Mit einem oder mehreren Argumenten, ssh-agent gibt nichts aus, sondern startet den angegebenen Befehl:in diesem Fall die
bashShell, 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.