ssh -A가 인증 에이전트 연결을 올바르게 전달하지 못함


22

ssh -A원격 서버에서 연결을 설정할 때 로컬 ssh 키를 사용할 수있는을 좋아 합니다. 예를 들어, ssh -A host1.example.com그런 다음 거기에서 ssh host2.example.comgit을 사용할 수 있고 원래 컴퓨터의 ssh 키를 사용합니다.이 경우 내 Mac 이어야 합니다. 이것은 데비안 / 우분투에서 항상 작동했지만 새로운 Mac (Lion)에서는 작동하지 않습니다.

내가 여기서 무엇을 놓치고 있습니까? -A에서 올바르게 작동하도록 ssh를 어떻게 구성합니까? 표준 MacOS가 아닌 ssh가 필요합니까?

답변:


33

실제로 매우 간단한 대답은

ssh-add

그런 다음 모두 작동합니다.

기본적으로 macOS에는 이미 ssh-agent가 설정되어 있지만 재부팅 할 때마다 키를 추가해야합니다. ssh-add는 ssh-agent가 현재 부팅주기 동안 키에 액세스 할 수 있도록합니다. 개인 키를 생성 한 경우 개인 키의 암호를 입력해야합니다.


이것은 macOS로 업그레이드 한 후 최신 ssh 전달 문제를 해결했습니다 (5 년 후에도 여전히 유용한 답변, @rfay 덕분에)
23tux

이것은 작동하지만 사람들 이이 명령을 기억하는 데 도움이되는 이유에 대한 설명이 있습니다.
Adam Parkin

2
@AdamParkin은 다른 단락 설명을 추가했습니다.
rfay

1

배후의 개념 ssh -A은 ssh 에이전트입니다. 백그라운드에서 실행되고 환경 변수를 사용하여 ssh를 사용하여 다른 시스템에 로그인 할 때 에이전트를 찾고 인증에 자동으로 사용할 수 있습니다. 자세한 내용은 ssh-agent 맨 페이지를 참조하십시오.

Mac OS X에서는 ssh-agent가 필요에 따라 시작되어야합니다.

자세한 내용은 다음을 참조하십시오.


1

OS X 10.8부터이 작업을 한 번 수행해야합니다.

sudo touch /var/db/useLS

그리고 이것을 당신의 일부로 추가하십시오 ~/.bash_profile:

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

참고 :이 레시피는 내 베두인 스크립트의 일부입니다.


흠, 그냥 이것을 시도했다; 그러면 에이전트가 시작되지만 작업을 수행하려면 여전히 ssh-add해야합니다. 그래서 내가 이해하는 한 ssh-add만으로는 여전히 답입니다. 내 .bash_profile에 추가해야한다고 생각합니다.
rfay

lol, 개인 키에 암호가 필요한 경우 어떻게합니까?
Jeffrey04
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.