다른 서버를 사용하여 다른 서버로 SSH를 연결하는 방법은 무엇입니까? [복사]

다른 서버를 사용하여 다른 서버로 SSH를 연결하는 방법은 무엇입니까? [복사]

중복 가능성:
여러 호스트를 통한 SSH

연결을 위해서버 B먼저 ssh로 접속해야 해요서버 A. 액세스되는 명령줄은 무엇입니까?서버 B?

답변1

이는 다음을 통해 서버 B ssh에 액세스할 수 ssh있는 scp경우에도 완벽하게 작동합니다.sftp

ssh -t $SERVER_A ssh $SERVER_B

이 옵션은 반대쪽 끝에서 단일 명령을 실행하는 경우에도 -t의사 터미널이 할당되도록 강제합니다 . ssh의사 터미널이 필요하기 때문에 이는 유용합니다 .

두 개의 중첩된 인스턴스를 사용하고 있으므로 ssh내부 세션의 이스케이프 문자는 Enter ~ ~(두 개의 물결표)입니다. 물결표는 첫 번째 쉘로 이스케이프를 보냅니다.

답변2

ssh포트 전달을 사용하는 것 외에는 이를 수행할 수 있는 기본 제공 방법이 없습니다.

그러나 아주 잘 작동하는 한 가지 방법이 있습니다. 바로 SSH ProxyCommand설정입니다. 이를 호스트별로 지정 ~/.ssh/config하고 이를 사용하여 원격 SSH 포트에 연결하기 위해 실행할 명령을 지정할 수 있습니다.

여러 호스트에서 이것을 사용하고 있습니다.

host serverB.example.com serverB
  ProxyCommand /usr/bin/ssh serverA.example.com /usr/bin/nc %h %p

ssh(1)자세한 내용은 매뉴얼 페이지를 참조하고 패키지 nc(1)에서 netcat연결을 전달하는 데 사용한 명령을 참조하십시오 . (그러나 TCP 연결을 설정하고 이를 통해 표준 입력 및 출력을 전달하는 모든 것을 사용할 수 있습니다.)

관련 정보