비밀번호를 입력할 때마다(예: git
, ssh
) 비밀번호를 기억하고 싶습니다.
그래서 구성했어요ssh-agent
나도 추가 AddKeysToAgent yes
했어~/.ssh/config
지금 달리면 ssh-add
모든 것이 괜찮습니다. 하지만 없으면 작동하지 않습니다. (비밀번호를 매번 입력해야 합니다.)
나는 ssh-add
init 스크립트에 추가할 수 있다는 것을 알고 있지만 매일 필요하지 않기 때문에 그것은 내가 원하는 것이 아닙니다. 나는 그것이 무엇을 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 키 기사에아치 위키도움이 될 수도 있습니다. 위의 방법은 정말 매력적이어서 대안을 찾을 이유가 전혀 없었습니다.
이것이 당신에게 도움이 되기를 바랍니다.