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.