`eval 'ssh-agent -s'`를 항상 사용하지 않는 방법

`eval 'ssh-agent -s'`를 항상 사용하지 않는 방법

내 서버로 다시 SSH를 통해 연결할 때마다 내 서버에서 성공적으로 SSH를 수행하려면 항상 eval 'ssh-agent -s'다음 명령을 사용하여 내 SSH 에이전트를 시작 해야 하는 이유를 이해할 수 없습니다 . ssh-add <my_key.pem>.bashrc에 넣었지만 확실히 뭔가 빠졌고 로그인할 때마다 초기화하고 싶지 않습니다.

답변1

@Jakuje가 말했듯이 정방향 프록시를 사용하고 로컬 보안 시스템의 키를 사용하는 것이 좋습니다.

keychain하지만 말씀하신 대로 해야 한다면 (github.com/funtoo/keychain) 또는 (github.com/wwalker/ssh-find-agent) 같은 도구를 사용하세요 ssh-find-agent. 나중에 전자로 바꿨습니다.) 두 도구 모두 실행 중인 gpg 또는 ssh 에이전트를 찾아 사용자 환경을 해당 에이전트에 연결합니다.

답변2

ForwardAgent나는 일부 서버에 일부 키를 두고 로그인할 때마다 프록시를 다시 초기화하는 것보다 워크스테이션에서 정보를 얻는 것이 더 안전하고 유용하다고 생각합니다.

~/.ssh/config간단히 적절한 호스트 에 추가할 수 있습니다 (또는 -A스위치 ssh명령을 사용하여):

ForwardAgent yes

로컬 에이전트에 로컬 키를 추가하면 로컬에서 사용하는지, 원격으로 사용하는지 신경 쓸 필요가 없습니다.


암호로 보호된 키인지도 언급하지 않았지만 에 넣으면 그럴 것 같지 않습니다 .bashrc. 더 쉬운 방법은 서버에 키 경로를 지정하는 것입니다 ~/.ssh/config(키를 키 경로에 두려는 경우). 서버) , 다음과 같습니다:

IdentityFile <my_key.pem>

다시 특정 호스트 또는 전 세계적으로.

답변3

git push에서 이 문제가 발생하면 .ssh/config의 설정과 일치하도록 git 원격을 설정하면 문제가 해결됩니다.

git remote add alice git@gitolite-as-alice:whatever.git

.ssh/config

Host gitolite-as-alice <-- matches git remote above
HostName git.company.com
User git
IdentityFile /home/whoever/.ssh/id_rsa.alice
IdentitiesOnly yes

관련 정보