openssh - adiciona chaves ao agente quando inserido

openssh - adiciona chaves ao agente quando inserido

Sempre que eu inserir minha senha, por exemplo git, sshquero que ela seja lembrada.

Então eu configureissh-agent

Eu também AddKeysToAgent yesadicionei~/.ssh/config

Se eu correr ssh-addagora, tudo ficará bem. Mas sem ele não funciona (tenho que digitar minha senha toda vez)

Eu sei que poderia adicionar ssh-addum script de inicialização, mas não é isso que eu quero, pois não preciso dele todos os dias. Eu pensei que é para isso AddKeysToAgent yesque serve?

Eu começo ssh-agentcomo um serviço systemd com SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket.

atualizar

Para teste removi o serviço e SSH_AUTH_SOCK. Reiniciei e executei eval $(ssh-agent), efetuei login, ssh pi@my-ipdigitei a senha e fiz novamente. Ainda o prompt de senha. Portanto, não parece ser um problema com o systemd.

atualização 2

Passar AddKeysToAgent yespara a primeira linha corrigiu-o com eval.

Responder1

ok, então o problema era o formato de ~/.ssh/config. Era

Host awesomehost.tld
    User user
    IdentityFile ~/.ssh/id_rsa
AddKeysToAgent yes

Precisa ser

Host awesomehost.tld
    User user
    IdentityFile ~/.ssh/id_rsa
Host *
    AddKeysToAgent yes

ou

AddKeysToAgent yes
Host awesomehost.tld
    User user
    IdentityFile ~/.ssh/id_rsa

Responder2

Como alternativa para iniciar o serviço systemd, você poderia adicionar o seguinte código ao seu script de inicialização do shell (como ~/.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

Eu também tenho lutado para começar ssh-agentpor meio do serviço systemd (do usuário), oseção relevantedoparte do agente sshdoartigo sobre chaves sshnoArco Wikipode ser útil. O método acima funcionou perfeitamente, então nunca tive motivo para procurar uma alternativa.

Espero que isso possa ser útil para você.

informação relacionada