Ich möchte, dass mein Passwort jedes Mal gespeichert wird, wenn ich es eingebe, beispielsweise in git
.ssh
Ich habe also konfiguriertssh-agent
Ich habe auch AddKeysToAgent yes
hinzugefügt~/.ssh/config
Wenn ich es ssh-add
jetzt ausführe, ist alles in Ordnung. Aber ohne es funktioniert es nicht (ich muss jedes Mal mein Passwort eingeben)
Ich weiß, dass ich es zu einem Init-Skript hinzufügen könnte ssh-add
, aber das ist nicht das, was ich will, da ich es nicht jeden Tag brauche. Ich dachte, dafür AddKeysToAgent yes
ist es da?
Ich starte ssh-agent
als systemd-Dienst mit SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket
.
aktualisieren
Zum Testen habe ich den Dienst und SSH_AUTH_SOCK entfernt. Neustart und Ausführung, eval $(ssh-agent)
dann Anmeldung, ssh pi@my-ip
Passwort eingeben und nochmal wiederholen. Immer noch die Passwortabfrage. Es scheint also kein Problem mit systemd zu sein.
Aktualisierung 2
Durch das Verschieben AddKeysToAgent yes
zur ersten Zeile wurde das Problem mit eval behoben.
Antwort1
ok, also das Problem war das Format von ~/.ssh/config
. Es war
Host awesomehost.tld
User user
IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes
Es muss entweder
Host awesomehost.tld
User user
IdentityFile ~/.ssh/id_rsa
Host *
AddKeysToAgent yes
oder
AddKeysToAgent yes
Host awesomehost.tld
User user
IdentityFile ~/.ssh/id_rsa
Antwort2
Als Alternative zum Starten des systemd-Dienstes könnten Sie möglicherweise den folgenden Code zu Ihrem Shell-Startskript hinzufügen (z. B. ~/.bashrc):
if ! pgrep -u "$USER" ssh-agent > /dev/null; then
ssh-agent > "$XDG_RUNTIME_DIR/ssh-agent.env"
fi
if [[ ! "$SSH_AUTH_SOCK" ]]; then
eval "$(<"$XDG_RUNTIME_DIR/ssh-agent.env")"
fi
Ich habe auch Probleme damit, ssh-agent
den systemd-Dienst (des Benutzers) zum Laufen zu bringen, derrelevanter AbschnittdesSSH-Agent-TeildesSSH-Schlüssel Artikelauf derArch Wikikönnte hilfreich sein. Die obige Methode hat wunderbar funktioniert, sodass ich nie einen Grund hatte, nach einer Alternative zu suchen.
Ich hoffe, das hilft Ihnen weiter.