openssh - 입력 시 에이전트에 키를 추가합니다.

openssh - 입력 시 에이전트에 키를 추가합니다.

비밀번호를 입력할 때마다(예: git, ssh) 비밀번호를 기억하고 싶습니다.

그래서 구성했어요ssh-agent

나도 추가 AddKeysToAgent yes했어~/.ssh/config

지금 달리면 ssh-add모든 것이 괜찮습니다. 하지만 없으면 작동하지 않습니다. (비밀번호를 매번 입력해야 합니다.)

나는 ssh-addinit 스크립트에 추가할 수 있다는 것을 알고 있지만 매일 필요하지 않기 때문에 그것은 내가 원하는 것이 아닙니다. 나는 그것이 무엇을 AddKeysToAgent yes위한 것이라고 생각했는가?

나는 ssh-agent시스템 서비스로 시작합니다 SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket.

업데이트

테스트를 위해 서비스와 SSH_AUTH_SOCK을 제거했습니다. 재부팅하고 실행 eval $(ssh-agent)한 후 로그인하여 ssh pi@my-ip비밀번호를 입력하고 다시 수행했습니다. 여전히 비밀번호 프롬프트입니다. 따라서 systemd에는 문제가되지 않는 것 같습니다.

업데이트 2

AddKeysToAgent yes첫 번째 줄로 이동하면 eval로 수정되었습니다.

답변1

그렇군요. 문제는 ~/.ssh/config. 그것은

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

다음 중 하나여야 합니다.

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

또는

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

답변2

systemd 서비스를 시작하는 대신 쉘 시작 스크립트(예: ~/.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

나는 또한 ssh-agent(사용자의) 시스템 서비스를 통해 진행하는 데 어려움을 겪었습니다.관련 섹션~의SSH 에이전트 부분~의SSH 키 기사아치 위키도움이 될 수도 있습니다. 위의 방법은 정말 매력적이어서 대안을 찾을 이유가 전혀 없었습니다.

이것이 당신에게 도움이 되기를 바랍니다.

관련 정보