SSH 에이전트의 새 인스턴스를 다시 생성하지 않고 ssh를 통해 SSH 키를 어떻게 추가합니까?

SSH 에이전트의 새 인스턴스를 다시 생성하지 않고 ssh를 통해 SSH 키를 어떻게 추가합니까?

.bashrc에 다음을 추가했습니다.

ssh-add ~/.ssh/id_rsa

따라서 셸/터미널 애플리케이션(macOS의 iTerm2)에서 새 탭을 열면 SSH 에이전트를 사용하여 SSH ID가 자동으로 추가되므로 탭에 SSH 비밀번호를 수동으로 입력할 필요가 없습니다. 그러나 탭이 많으면 ssh-agent의 실행 인스턴스를 많이 가질 필요는 없는 것 같습니다.

이를 달성하는 더 좋은 방법이 있습니까?

답변1

문제는 쉘을 초기화할 때마다 에이전트에 대한 새로운 호출을 시작한다는 것입니다(아마도 .bash_profile또는 .bashrc. 이는 필요하지 않으므로 해당 ssh-agent 호출을 찾아서 삭제해야 합니다.

OSX에서는 일반적으로 데스크톱 세션이 시작될 때 SSH 에이전트가 시작됩니다. 예를 들어:

myhost:~)-> ps -ef | grep ssh-agent
  501   986     1   0 10:18AM ??         0:00.14 /usr/bin/ssh-agent -l
  501  2126   736   0  5:30PM ttys007    0:00.00 grep ssh-agent

이에 액세스하려면 청취 소켓이 어디에 있는지 알아내야 합니다. 일반적으로 임의의 영숫자 식별자가 /tmp/com.apple.launchd.<blah>/Listeners어디에 <blah>있는지 알아내야 합니다. 몇 개가 있을 수 있지만 "리스너" 소켓이 있어야 합니다.

소켓을 찾으면 표준 SSH 환경 변수를 사용하여 연결할 수 있습니다 SSH_AUTH_SOCK. 예를 들어:

myhost:~)-> export SSH_AUTH_SOCK=/tmp/com.apple.launchd.1h2j3k4l5/Listeners
myhost:~)-> ssh-add ~/.ssh/id_rsa
Enter passphrase for ~/.ssh/id_rsa: <typing_here>
Identity added: ~/.ssh/id_rsa (~/.ssh/id_rsa)

셸로 내보낸 후에는 ssh-add이 시점에서 명령을 사용하여 키 암호를 제공하고 해당 키를 에이전트에 추가할 수 있습니다. 탐색하고 싶은 다른 옵션을 보려면 ssh-agent 매뉴얼 페이지를 확인하세요.

관련 정보