openssh - Schlüssel bei Eingabe zum Agenten hinzufügen

openssh - Schlüssel bei Eingabe zum Agenten hinzufügen

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 yeshinzugefügt~/.ssh/config

Wenn ich es ssh-addjetzt 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 yesist es da?

Ich starte ssh-agentals 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-ipPasswort eingeben und nochmal wiederholen. Immer noch die Passwortabfrage. Es scheint also kein Problem mit systemd zu sein.

Aktualisierung 2

Durch das Verschieben AddKeysToAgent yeszur 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-agentden 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.

verwandte Informationen