SSH ForwardAgent 다중 홉


15

지난 2 시간 동안 다음과 같은 문제에 대한 해결책을 찾고있었습니다.

개발:

공개 키 인증을 사용하여 서버에 연결하고 있습니다. 공개 / 개인 키를 관리 할 필요가 없도록 ssh-agent 전달을 사용합니다.

서버가 있다고 가정 해 봅시다 A, B and C.

에서 연결하면 매우 잘 작동합니다 LOCAL ---> A ---> B.

내가하면 아주 잘 작동합니다 LOCAL ---> A ---> C.

이제 시도 LOCAL ---> A ---> B ---> C하면 SSH에서 연결할 수 없습니다 B to C.

주목할만한 점은 유동성으로 서버 A에 연결하는 반면 루트로 서버 B에 연결하는 것입니다. 유동성으로 서버 B에 연결하면 문제가 해결되지만이 옵션은 아닙니다.

사용자 권장 사항에 따라 ssh -A매번 사용 하여 에이전트 전달이 활성화되었는지 확인합니다.

여기에 답이없는 비슷한 질문이 하나 있습니다. 여러 홉을 통해 ssh-agent 전달을 연결할 수 있습니까?

@Zoredache에 따르면 /server//a/561576/45671 각 중간 시스템에서 클라이언트 구성을 조정하면됩니다. 내가 믿었다


고려하여 ProxyCommand(한 바와 같이 호핑 여기 대신 SSH 에이전트 포워딩). 접근하려면 체인의 모든 컴퓨터가 개인 키를 사용할 수 있기 때문에 신뢰해야합니다. 또한 알려진 호스트 검사가 로컬에서 수행되므로 ProxyCommand 접근 방식이 훨씬 좋습니다. 또한 SSH 구성에서 체인을 설정하여 단일 명령을 사용하여 C에 연결할 수 있습니다.
— gertvdijk

불행히도 proxyCommand를 사용할 수 없습니다. 보안 고려 사항에도 불구하고 실제로 forwardAgent를 사용해야합니다.
— 유동성

@liquidity proxyCommand를 사용하고 싶지 않은 이유는 무엇입니까? 나는 같은 문제가 있으며 proxyCommand가 더 안전하다는 것을 이해합니다. 그래서 어느 것을 사용
— grep

답변:


13

에이전트 전달이 여러 홉을 통해 작동하게하려면 에이전트 전달을 위해 각 중간 시스템에서 클라이언트 구성을 조정하면됩니다.

/etc/ssh/ssh_config이를 구성 하는 것만 큼 간단 할 수 있습니다 . 그러나 클라이언트 별 구성이 ~/.ssh/config있는 경우 해당 설정도 조정해야합니다.

Host *
    ForwardAgent yes

-v옵션을 추가하면 에이전트 전달이 발생했는지 또는 오류가 있는지 확인할 수 있습니다 .

$ ssh -v issc@server1
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /home/zoredache/.ssh/config
...
debug1: Requesting authentication agent forwarding.
debug1: Sending environment.
Linux server1 3.11-0.bpo.2-amd64 #1 SMP Debian 3.11.8-1~bpo70+1 (2013-11-21) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Dec 15 20:39:44 2013 from 10.2.4.243
issc@server1:~$

또한 유효한 환경 변수 세트가 있는지 확인하십시오.

issc@server1:~$ export | grep SSH_AUTH
declare -x SSH_AUTH_SOCK="/tmp/ssh-7VejOmKtNv/agent.57943"

4
ssh_config 또는 ~ .ssh / config 옵션에 대한 빠르고 더러운 대안으로 ssh에 대한 -A 플래그를 언급 할 가치가 있습니다. -A [e] 인증 에이전트 연결을 전달할 수 있습니다.
— dmourati

1
각 단계에서 ssh-add -lssh 가 에이전트를 통해 얻을 수 있다고 생각 하는 키를 나열하는 데 사용할 수 있습니다 . 각 연결에서 전달해야합니다!
— MikeyB

감사! 또한 모든 것이 올바르게 완료되면 마지막 서버에서 ssh-agent를 수동으로 시작할 필요가 없습니다. Requesting authentication agent forwarding.디버그 출력에 라인이 표시되면 자동으로 시작됩니다 . .bash_profilessh-agent를 시작 하려고 시도한 경우 해당 에이전트를 제거하십시오. 그렇지 않으면 에이전트가 ID없이 다시 시작됩니다.
— 2upmedia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.