Ich bin neu in SSH-Schlüssel. Kann mir jemand erklären, wie das ssh-agent bashund ssh-addfunktioniert?
Ich muss seine Interna in Zukunft verstehen.
Ich bin neu in SSH-Schlüssel. Kann mir jemand erklären, wie das ssh-agent bashund ssh-addfunktioniert?
Ich muss seine Interna in Zukunft verstehen.
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 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 .
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.
ssh-addmit "&"? Gehen Sie davon aus, dass die privaten Schlüsseldateien ungeschützt sind?