Haben Sie den Top-Google-Hit für einen dieser Begriffe ausprobiert?
Daniel Beck
Ja, habe ich. Ich habe keine nützlichen Informationen erhalten. Mein schlechtes
maneeshshetty
Antworten:
44
Ein Agent ist ein Programm, das Ihre Schlüssel im Speicher hält, sodass Sie sie nicht jedes Mal, sondern nur einmal entsperren müssen . ssh-agent erledigt dies für SSH-Schlüssel.
Die üblichen Methoden zum Starten von ssh-agent sind:
eval `ssh-agent`- Dadurch wird der Agent im Hintergrund ausgeführt und die entsprechenden Umgebungsvariablen für die aktuelle Shell-Instanz festgelegt.
( Wenn ssh-agent ohne Argumente gestartet wird, werden Befehle ausgegeben, die von Ihrer Shell interpretiert werden sollen.)
exec ssh-agent bash- Startet eine neue Instanz der bashShell und ersetzt die aktuelle.
(Mit einem oder mehreren Argumenten gibt ssh-agent 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 ssh-agent automatisch beendet wird, wenn Sie das Terminalfenster schließen. (Wenn evalder Agent mit gestartet wird, wird er weiterhin ausgeführt, ist jedoch nicht verfügbar.)
Dies startet jedoch nur einen leeren Agenten. Um es wirklich nützlich zu machen, müssen Sie ssh-add verwenden , mit dem Ihre Schlüssel (normalerweise ~/.ssh/id_*) entsperrt und in den Agenten geladen werden , sodass sie für ssh- oder sftp- Verbindungen zugänglich sind .
Gibt es eine Möglichkeit, ssh-agent über mehrere Bash-Sitzungen hinweg einmal zu starten?
Asim
9
Darüber hinaus möchten Sie möglicherweise einige Schlüssel beim Sitzungsstart hinzufügen.
Bearbeiten Sie Ihre ~/.bashrcDatei und fügen Sie Folgendes 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 beenden ssh-agent -k
Was Sie über ssh-agent und .bashrc wissen sollten, ist, dass Sie nicht zu viele Schlüssel laden. Die Standardanzahl der Versuche für den ssh-Daemon ist auf 6 begrenzt. Dies kann /etc/ssh/sshd_configmit dem MaxAuthTriesWert geändert werden.
Was ist mit dem Passwort für den privaten Schlüssel beim Starten ssh-addmit "&"? Gehen Sie davon aus, dass die privaten Schlüsseldateien ungeschützt sind?
Luciano
Der obige Code fragt zweimal nach der Passphrase, einmal, wenn geprüft wird, ob ssh-agent verfügbar ist, und einmal, wenn der private Schlüssel geladen wird.
Antworten:
Ein Agent ist ein Programm, das Ihre Schlüssel im Speicher hält, sodass Sie sie nicht jedes Mal, sondern nur einmal entsperren müssen . ssh-agent erledigt dies für SSH-Schlüssel.
Die üblichen Methoden zum Starten von ssh-agent sind:
eval `ssh-agent`
- Dadurch wird der Agent im Hintergrund ausgeführt und die entsprechenden Umgebungsvariablen für die aktuelle Shell-Instanz festgelegt.( Wenn ssh-agent ohne Argumente gestartet wird, werden Befehle ausgegeben, die von Ihrer Shell interpretiert werden sollen.)
exec ssh-agent bash
- Startet eine neue Instanz derbash
Shell und ersetzt die aktuelle.(Mit einem oder mehreren Argumenten gibt ssh-agent 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 ssh-agent automatisch beendet wird, wenn Sie das Terminalfenster schließen. (Wenn
eval
der Agent mit gestartet wird, wird er weiterhin ausgeführt, ist jedoch nicht verfügbar.)Dies startet jedoch nur einen leeren Agenten. Um es wirklich nützlich zu machen, müssen Sie ssh-add verwenden , mit dem Ihre Schlüssel (normalerweise
~/.ssh/id_*
) entsperrt und in den Agenten geladen werden , sodass sie für ssh- oder sftp- Verbindungen zugänglich sind .quelle
Darüber hinaus möchten Sie möglicherweise einige Schlüssel beim Sitzungsstart hinzufügen.
Bearbeiten Sie Ihre
~/.bashrc
Datei und fügen Sie Folgendes hinzu:Überprüfen Sie Ihre Schlüssel mit
ssh-add -l
Sie können die aktuelle ssh-agent-Sitzung mit beenden
ssh-agent -k
Was Sie über ssh-agent und .bashrc wissen sollten, ist, dass Sie nicht zu viele Schlüssel laden. Die Standardanzahl der Versuche für den ssh-Daemon ist auf 6 begrenzt. Dies kann
/etc/ssh/sshd_config
mit demMaxAuthTries
Wert geändert werden.quelle
ssh-add
mit "&"? Gehen Sie davon aus, dass die privaten Schlüsseldateien ungeschützt sind?