ssh-add로 추가 한 ID를 저장하여 유지


19

최근에 openssh와 함께 사용할 수 있도록 설정 했습니다 git.

설정하는 과정에서 ( 이 기사에 따라 ) 명령을 실행했습니다.

$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/<name of key>

얼마 후, 로그 아웃 한 후 다시 사용하려고했는데 git push오류가 발생했습니다. 이 오류에 대한 해결책은 동일한 명령을 다시 실행하는 것입니다.

내가 어떻게 할 수 있는지 말해줘

  • ssh-agent달리기를 계속해서 새로 시작할 필요가 없습니다.
  • 내가 추가 한 키를 기억하여 매번 추가 할 필요가 없습니다.

명확히하기 위해 zsh를 사용하므로 특정 bash 기능이 내 .zshrc에서 작동하지 않습니다.


ssh-agent트위스트 유스 케이스에 맞추기 전에 무엇이 무엇 이고 어떻게 작동하는지 이해하는 것으로 시작해야합니다 .
Jakuje

어떤 오류가 있습니까?
Jakuje

@Jakuje 오류는 누락 된 pubkey에 관한 것이며 "ssh-agent를 시작하셨습니까?"
timotree

답변:


21

무엇을 ssh-agent위해 그리고 어떻게 작동합니까?

ssh-agent메모리 및 세션에서 안전하게 해독 키를 유지합니다. 재부팅 / 재 로그인 중에 해독 된 키를 보존 할 수있는 합리적이고 안전한 방법은 없습니다.

좋아, 어떻게 자동화 할 수 있습니까?

ssh-agent시작 자동화

더하다

[ -z "$SSH_AUTH_SOCK" ] && eval "$(ssh-agent -s)"

귀하 ~/.bashrc또는 다른 시작 스크립트 ( ~/.zshrc)에

키 추가 자동화

추가 할 때 처음 사용시 키를 자동으로 추가 할 수 있습니다

AddKeysToAgent yes

당신에게 ~/.ssh/config.

자세한 내용은를 ~/.ssh/config참조하십시오 man ssh_config.


그래서 AddKeysToAgent를 활성화하면 입력 eval "$(ssh-agent -s)"할 때마다 키가 추가됩니까?
timotree

에이전트가 실행 ssh중이고이 옵션을 지원하면 예입니다.
Jakuje

ssh-agent그때 부터 시작하는 방법을 분명히 설명해 주 시겠습니까?
timotree

기본적으로 다른 답변에서 설명한대로. [ -z "$SSH_AUTH_SOCK" ] && eval $(ssh-agent)
Jakuje

zsh와 함께 작동합니까?
timotree

3

이것을 추가하십시오 ~/.bashrc

이것은 터미널없이 다른 세션을 열면 ssh-agent가 자동으로 시작됨을 의미합니다.

if [ -z "$SSH_AUTH_SOCK" ] ; then
 eval `ssh-agent -s`
fi

에이전트에 키를 추가해야하는 경우

if [ -z "$SSH_AUTH_SOCK" ] ; then
 eval `ssh-agent -s`
 ssh-add ~/.ssh/<your private ssh key>
fi

1
이것은 좋은 대답이지만 명령이 수행하는 작업을 설명하지는 않습니다.
timotree
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.