공개적으로 액세스할 수 없고 host2
에서만 액세스할 수 있는 서버로 VNC 트래픽을 터널링하고 싶습니다 .host1
host1
다음에 설명된 대로 다중 홉 SSH 터널을 설정했습니다.이 문제, 사용:
ssh -L 5901:localhost:6000 host1 ssh -L 6000:localhost:5901 -N host2
이것은 작업을 완벽하게 수행합니다. 그러나 중첩된 터널을 올바르게 닫는 방법을 모르겠습니다. 나는 노력했다Ctrl+Cssh
하지만 살인 사건 은 이번이 처음인 것 같습니다 host1
. 그러나 ssh
과 사이의 두 번째 터널은 열려 있는 상태로 유지되는데, 이는 누구나 실제로 트래픽을 통과할 수 있기 때문에 매우 바람직하지 않습니다.host1
host2
또한 옵션을 사용하면 실제 on 을 -N
얻을 수 없으므로 간단히 시작할 수 없습니다 . 그렇지 않은 경우 여전히 을 받지 못하지만 대신 다음 오류가 발생합니다.tty
host2
exit
-N
tty
Pseudo-terminal will not be allocated because stdin is not a terminal.
Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.
term: Undefined variable.
저는 호스트 1과 호스트 2가 모두 RHEL 6을 실행하는 MacOS X에서 연결하고 있습니다.
답변1
tty를 사용하는 방식이 정확합니다. 이 -t
옵션이 제공됩니다. 그러나 실제 목표가 상호 작용할 tty 세션을 얻는 것이 아니라면 체인의 마지막 ssh 명령에 이 옵션을 그대로 두십시오. 귀하의 경우 처음 연결할 때만 이것을 사용해야 합니다:
ssh -L 5901:localhost:6000 host1 -t ssh -L 6000:localhost:5901 -N host2
이제 당신이 사용할 때Ctrl-C, 모든 호스트 간에 터널이 설정됩니다.