SSH 터널 설명

SSH 터널 설명

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 명령을 입력하는 머신은 다음과 같습니다."당신의 주인".

로컬에서 시작하는 SSH 터널


원격에서 시작하는 SSH 터널

소개하다

  1. 현지의:-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하고 모든 연결 시도를 전달합니다.현지의 sourcePortonPort포트에 접근할 수 forwardToHost있는 이름의 컴퓨터 포트에 연결합니다 .connectToHost

  2. 외딴:-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하고 모든 연결 시도를 전달합니다.외딴 sourcePortonPortforwardToHost로컬 컴퓨터에서 액세스할 수 있는 컴퓨터의 포트에 연결합니다 .

당신의 모범

글쎄요, 단지 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

예를 들어.

이것은 터널 위의 터널이라는 점에 유의하십시오.

관련 정보