답변1
서버 B가 다음을 통해 연결할 수 ssh
있고 필요한 경우 ssh
(직접 scp
또는 가 아님 sftp
), 이 방법도 매우 잘 작동합니다.
ssh -t $SERVER_A ssh $SERVER_B
이 -t
옵션은 반대쪽 끝에서 단일 명령을 실행하는 경우에도 pseudo-tty를 강제로 할당합니다. ssh
pseudo-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 연결을 만들고 이를 통해 표준 입력 및 출력을 전달하는 모든 것을 사용할 수 있습니다.)