SSH 에이전트는 시스템을 다시 시작하는 동안 ID를 잃습니다.

SSH 에이전트는 시스템을 다시 시작하는 동안 ID를 잃습니다.

id_rsa기본 위치에 이름을 가진 키를 생성한 후 . 명령을 사용하여 SSH 에이전트에 ID를 추가하고 있는데 ssh-add ~/.ssh/id_rsa성공적으로 추가되고 있습니다.

SSH 에이전트가 이미 있으므로 키의 암호 문구를 입력하지 않고도 SSH를 수행할 수 있습니다.

하지만,컴퓨터나 서버를 다시 시작한 다음 명령으로 ID를 확인하면 다음 ssh-add -L과 같은 메시지가 나타납니다 The agent has no identities.

이는 컴퓨터를 다시 시작하면 에이전트의 신원이 손실된다는 의미입니까? 이것이 정상적인 동작입니까, 아니면 제가 여기서 놓친 것입니까?

저를 안내해주세요. 저는 SSH에 익숙하지 않습니다.

답변1

정상입니다. 키 에이전트의 목적은 단지 해독된 키를 보관하는 것입니다.기억 속에, 그러나 디스크에는 절대 쓰지 않습니다. (그렇게 하면 목적이 무산됩니다. 대신 기본 키를 보호 해제하면 어떨까요?)

따라서 로그인할 때마다 키를 잠금 해제해야 하며 이를 자동화해야 합니다. Linux에서는 다음을 사용하는 것이 pam_ssh하나의 옵션입니다. 자동으로OS 비밀번호를 사용합니다에이전트의 잠금을 해제합니다. 또 다른 유사한 모듈은 pam_envoyafaik이 약간 더 안정적인 모듈입니다(그러나 systemd가 필요함).

두 모듈 모두 에이전트 자체를 시작하고 자동으로 키를 로드합니다.

답변2

OS X에서 ssh-add에는 개인 키를 키체인에 저장하기로 결정한 경우 키체인에 연결하기 위한 특수 플래그가 있습니다.

그냥 실행하세요 ssh-add -K ~/.ssh/id_rsa.

나는 이것이 귀하의 질문에 더 완벽하게 대답한다고 믿습니다. 이 OS X 관련 플래그는 문서를 찾기 어렵지만 적어도 OS X Leopard 이후로 작동해 왔습니다.

답변3

이것을 시도해보세요~/.bashrc:

if [ ! -S ~/.ssh/id_rsa ]; then
  eval `ssh-agent`
  ln -sf "$SSH_AUTH_SOCK" ~/.ssh/id_rsa
  ssh-add
fi
export SSH_AUTH_SOCK=~/.ssh/id_rsa

로그인한 후에만 비밀번호를 묻는 메시지가 표시됩니다.

답변4

메모리에 로드하려면 재부팅할 때마다 잠금을 해제해야 합니다. 이렇게 하려면 다음을 추가하세요 ~/.bashrc.

eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa

id_rsa키 쌍 을 생성할 때 키 쌍의 이름을 지정하지 마세요 . 액세스하려는 리소스와 관련된 의미 있는 이름을 키에 지정하세요. 무엇이든 가능하며 기본 이름에는 특별한 것이 없습니다 id_rsa.

관련 정보