VNC 포트를 집으로 다시 라우팅하는 방법을 찾고 있습니다. 단일 호스트를 건너뛰고 실제 작업 컴퓨터로 이동해야 합니다.
sittinghere
내 로컬 가정용 기계가 될거야hopper
내가 해야 할 중간 점프를 통과할 거예요overthere
원격 작업 기계가 될 것입니다
SSH를 통해 업무용 컴퓨터에 연결할 수 있습니다.
ssh -t hopper "ssh -t overthere"
overthere
포트 전달을 사용하여 원격 포트 5900을 로컬 포트 5900으로 전달하고 싶습니다 sittinghere
. 그러나 hopper
해당 컴퓨터의 누구나 내 VNC 연결에 연결할 수 있으므로 노출된 포트에 바인딩하지 않고도 이 작업을 수행할 수 있기를 원합니다 .
누구도 액세스할 수 없도록 이 포트를 로컬 컴퓨터로 안전하게 전달할 수 있는 방법이 있습니까 hopper
?
답변1
SSH의 기본 기능을 사용하여 포트를 전달하십시오. 실행 에서 sittinghere
:
ssh -v -N -L 5900:overthere:5900 user@hopper
VNC 클라이언트를 가리키면 트래픽 localhost:5900
이overthere:5900
hopper
답변2
~/.ssh/config
나는 이것을 달성하기 위해 몇 가지 SSH 해킹을 사용했습니다 .
Host hopper
User naftuli
ForwardAgent yes
Host overthere
User naftuli
ForwardAgent yes
ProxyCommand ssh -q hopper nc overthere 22
ssh overthere
그것이 하는 일은 from 에 연결을 시도할 때 SSH 연결을 포트 22 (예: SSH on )에 sittinghere
연결하고 프록시하는 것입니다 .hopper
overthere
overthere
여기에는 몇 가지 큰 부작용이 있습니다.
ssh -L 5900:localhost:5900 overthere "x11vnc -display :0 -localhost"
모든 것이 잘 작동하고 있으며 내가 아는 한 5900은 에서 열리지 않고 에서 hopper
직접 전달 됩니다 .overthere
sittinghere
답변3
sittinghere
SSH overthere
포트 에서 으로 포트를 전달하면 됩니다 hopper
. 그런 다음 해당 포트를 사용하여 overthere
에서 직접 도착할 수 있습니다 sittinghere
. 두 번째 SSH 세션에서는 hopper
암호화된 SSH 세션만 보면서 VNC 또는 원하는 다른 포트를 전달할 수 있습니다 .
첫 번째 SSH 세션:
ssh -f -N -L 7022:overthere:22 hopper
overthere
이제 ~/.ssh/config
SSH 클라이언트에게 접속 방법을 알려주세요.sittinghere
Host overthere
HostName hopper
Port 7022
HostKeyAlias overthere
두 번째 SSH 세션:
ssh -f -N -L 5900:localhost:5900 overthere
또는 VNC 포트 터널링이 없는 일반 대화형 SSH 세션:
ssh overthere
줄을 추가하는 것을 귀찮게 하고 싶지 않다면 ~/.ssh/config
명령줄에서 연결하는 방법을 알려줄 수 있습니다 overthere
.
ssh -p 7022 hopper
...하지만 SSH가 없으면 키 지문이 제대로 확인 HostKeyAlias
되지 않습니다 .overthere
모든 명령줄은 에서 실행됩니다 sittinghere
.
ssh
그런데 아마도 s 옵션을 사용할 필요는 없을 것 같습니다 -t
.
답변4
vncviewer
명령줄에서 VNC 클라이언트를 사용하는 경우 -via
스위치를 사용하여 user@host
다른 호스트의 VNC 서버에 연결하기 전에 터널링을 지시할 수 있습니다.
예
$ vncviewer -via user@host localhost:0
vinagre
GUI를 통해 SSH 터널을 통해 연결할 수도 있습니다 . 이렇게 하려면 다음 연결 대화 상자를 통해 이와 유사한 연결을 설정하십시오 vinagre
.
이렇게 하면 연결이 SSH 터널 호스트를 통해 터널링됩니다.