SSH 터널링에 관해 질문이 있습니다. 나는 이 글을 읽었다
X 전달이 작동하도록 하고 집에서 일부 X 응용 프로그램을 실행하여 원격 시스템에 표시하고 싶습니다.
ssh -X -R 5555:localhost:22 [email protected] -N
원격에서:
ssh -X -p 5555 [email protected]
그런 다음 집에서:
//configure sshd to listen on 5555
ssh [email protected]
//here run some app
작동해야합니까?
답변1
나는 몇 가지 스케치를 만들었다.
SSH Tunnel 명령을 입력하는 머신은 다음과 같습니다."당신의 주인".
소개하다
현지의:
-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
ssh -L sourcePort:forwardToHost:onPort connectToHost
의미: SSH를 사용하여 연결connectToHost
하고 모든 연결 시도를 전달합니다.현지의sourcePort
onPort
포트에 접근할 수forwardToHost
있는 이름의 컴퓨터 포트에 연결합니다 .connectToHost
외딴:
-R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
ssh -R sourcePort:forwardToHost:onPort connectToHost
의미: SSH를 사용하여 연결connectToHost
하고 모든 연결 시도를 전달합니다.외딴sourcePort
onPort
forwardToHost
로컬 컴퓨터에서 액세스할 수 있는 컴퓨터의 포트에 연결합니다 .
당신의 모범
글쎄요, 단지 X 포워딩을 작동시키려는 경우, 즉 집 컴퓨터에서 일부 X 응용 프로그램을 실행하고 원격 시스템에 표시하려는 경우(아마도 직장에 있으므로 업무용 컴퓨터라고 부르겠습니다) 아마도 필요하지 않을 것입니다. SSH 터널이 전혀 없습니다.
X 응용프로그램 실행아니요터널
직장 컴퓨터에서 집 컴퓨터로 간단히 이동할 수 있습니까? 그렇다면 당신이 있을 때업무용 컴퓨터에 앉아X 응용 프로그램을 시작하고 싶습니다집에 있는 컴퓨터에서 실행하지만업무용 컴퓨터에 표시됨, 다음을 입력해야 합니다(업무용 컴퓨터에서):
ssh -X homeuser@homecomputer Firefox
그러면 집에 있는 컴퓨터에서 Firefox가 실행되고 직장 컴퓨터와 같이 이 명령을 입력하는 컴퓨터에 Firefox가 표시됩니다.
숨겨진 컴퓨터에는 터널이 필요합니다
이것은이미지 번호 3내 스케치. 가정용 컴퓨터는 방화벽 뒤에 있거나 숨겨져 있기 때문에 인터넷에서 직접 액세스할 수 없는 경우가 많습니다.네트워크 주소 변환(라우터에서). 그런 다음 터널링을 사용할 수 있습니다.
당신의파란색가정용 컴퓨터( yourhost
) 다음을 입력합니다.
ssh -R 5555:localhost:22 remoteuser@remotehost
이미지에서 5555
녹색과 분홍색 포트는 어디에 있습니까 ?22
지금 직장에서 remotehost
녹색 포트에 연결하면 연결이 집 컴퓨터 (예: 컴퓨터) 5555
의 분홍색 포트로 터널링/전달됩니다 .localhost
파란색가정용 컴퓨터 자체). 이제 업무용 컴퓨터에 다음을 입력해야 합니다.
ssh -X -p 5555 homeuser@localhost firefox
그러면 집에 있는 컴퓨터( yourhost
)에서 Firefox가 실행되고 직장 컴퓨터( )와 같이 이 명령을 입력하는 컴퓨터에 Firefox가 표시됩니다 remotehost
.
답변2
전달할 원격 디스플레이를 지정해야 합니다. 원격에서:
DISPLAY=:0 ssh -X -p 5555 user@localhost # not sure why you used 192.168.1.2
앞으로 :0
표시.
그런 다음 해당 셸(현재 홈 컴퓨터에서 실행 중)에서 다음을 실행합니다.
echo "$DISPLAY"
전달된 디스플레이가 어떻게 보이는지 알아보세요. 이는 localhost:10
원격 시스템의 모니터 에 연결하려면 포트 6010에서 TCP 연결이 필요하다는 것을 의미합니다 (예를 들어 일부 Unix 도메인 소켓에 연결하는 것을 의미).:0
:0
/tmp/.X11-unix
그런 다음 컴퓨터의 응용 프로그램을 원격 서버의 디스플레이에 표시하려면 다음을 사용하도록 지시하십시오 localhost:10
.
DISPLAY=localhost:10 xlogo
예를 들어.
이것은 터널 위의 터널이라는 점에 유의하십시오.