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

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

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

연결을 위해서버 B먼저 SSH로 접속해야 합니다서버 A. 액세스할 명령줄은 무엇입니까서버 B?

답변1

서버 B가 다음을 통해 연결할 수 ssh있고 필요한 경우 ssh(직접 scp또는 가 아님 sftp), 이 방법도 매우 잘 작동합니다.

ssh -t $SERVER_A ssh $SERVER_B

-t옵션은 반대쪽 끝에서 단일 명령을 실행하는 경우에도 pseudo-tty를 강제로 할당합니다. sshpseudo-tty가 필요하므로 이는 도움이 됩니다 .

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

답변2

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

그러나 합리적으로 잘 작동하는 방법이 있습니다 ProxyCommand. 바로 ssh 설정입니다. 호스트별로 이를 지정 ~/.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 연결을 만들고 이를 통해 표준 입력 및 출력을 전달하는 모든 것을 사용할 수 있습니다.)

관련 정보