나는 OS X를 실행하는 M1과 M2라는 두 대의 컴퓨터를 갖고 있고, Linux를 실행하는 세 번째 컴퓨터인 L을 가지고 있습니다. M1과 M2에는 키체인에서 RSA 키가 잠금 해제되어 있으므로 다음을 수행할 수 있습니다.
- 비밀번호나 키의 비밀번호 문구를 묻지 않고 M1에서 M2로 ssh
- 비밀번호나 키의 비밀번호 문구를 묻지 않고 M2에서 L로 ssh
그러나 M1에서 M2로, 그리고 L로(아직 물리적으로 M1에 있는 동안) ssh를 하면 키의 암호를 묻습니다! 명령 login.keychain
을 사용하여 수동으로 잠금 해제를 시도했지만 security
아무런 효과가 없는 것 같습니다.
무슨 일이 일어나고 있나요? 암호 문구를 입력하지 않고 SSH를 이중으로 사용하려면 어떻게 해야 합니까?
답변1
키체인은 제대로 작동하고 있습니다. -A가 수행하는 작업은 로드된 키를 M1에서 M2를 거쳐 L로 전달하는 것입니다. M2에 로그인할 때 키를 초기화하거나 전체 세션을 시작하지 않는 것 같습니다. 모든 부작용과 함께 그래픽 로그인 프로세스가 발생하지 않았습니다.
ssh를 사용하는 모든 위치에 에이전트를 전달하려면 ~/.ssh/config 파일을 생성하고 ForwardAgent가 yes로 설정된 * 호스트에 대한 항목을 추가해야 합니다.
Host *
ForwardAgent yes
또한 *를 호스트 이름으로 바꾸면 에이전트를 전달할 호스트를 더 구체적으로 지정할 수 있습니다.
답변2
M2에서 L로 로그인을 시도하고 있습니다. 즉, M2에는 자격 증명(키 및 암호)이 있어야 합니다. 하지만 귀하의 자격 증명은 실제로 M1에 있습니다.
자격 증명을 M2에 복사할 수 있지만 그런 다음에는 M2의 키체인과 상호 작용해야 합니다. 또는 M2의 키체인이 아닌 M1의 키체인에 연결하도록 M2에 지시할 수 있습니다. 이는 실제로 일반적인 방법이며 일부 설치에서는 즉시 작동하지만 사용자의 설치에서는 그렇지 않은 것 같습니다.
할 수 있게 하다에이전트 전달M1에서 M2로. 명령줄에서 OpenSSH를 사용하여 -A
옵션을 전달합니다(예: ssh -A M2
M1에서 실행). ForwardAgent
에 지시어를 넣을 수도 있습니다 ~/.ssh/config
. OSX에서 이를 수행하는 GUI 방법이 있을 수도 있습니다.