
다음이 가능한지, 어떻게 가능한지 이해하는 데 어려움을 겪고 있습니다.
T
원격에서(이상적으로는 를 통해) 액세스하려는 머신(대상)이 있다고 가정해 보겠습니다 ssh
.
T
은(는) 라우터/방화벽 뒤에 있으며 의 포트를 의 포트로 전달할 R
수 없습니다 . 한마디로 직접 접근이 불가능합니다.22
R
22
T
ssh
T
이제 그렇게 말해보세요
A
나는 모든 것을 통제할 수 있는 기계를 가지고 있습니다 .T
에서 로 SSH를 통해 연결할 수 있습니다A
. 즉T: ssh user@A
성공합니다.
Q1:T
이것을 사용하여 의 쉘에 액세스할 수 있습니까 A
? 즉, T
에서 생성된 연결을 에서 으로 A
사용할 수 있습니까 ?T
A
T ---> ssh ----> A # this is possible
T <--- ? shell ? <---- A # is this possible?
Q2:만약에1분기가능하다:
L
세 번째 컴퓨터 (예: 랩톱) 가 있고 T
from 의 셸에 액세스하는 것을 목표로 한다고 가정해 보겠습니다 L
. 에 SSH 터널 A
로 액세스 할 수 있나요 L
?
T ----> ssh ----> A <---- ssh < ---- L
T <------- ?? %&£€ ?? <------- L # is this possible?
도움을 주시면 감사하겠습니다.
답변1
물론 가능합니다.
1분기: SSH를 통한 역터널링이 가능합니까?
예. 예비 터널링에 대한 답변은 다음과 같습니다.
2분기: 예약된 터널을 터널링하는 것이 가능합니까?
예, 이것은 기본적으로 터널을 통한 SSH 터널입니다. 다음은 터널로의 터널에 관한 몇 가지 답변입니다.
답변2
나는 항상 다른 방향으로 이것을 합니다. 먼저 T에서 A의 로컬 호스트로 역방향 SSH 터널을 설정한 다음 L에서 AT 터널의 A 쪽으로 터널링한 다음 SSH를 사용하여 LA 터널의 로컬 부분에 연결하고 LAT를 통해 원격으로 연결합니다.
내 예에서 A는 포트 22123에서 SSH 연결을 수신하고 있습니다.
로컬에서는 사용자 이름 user를 사용하고 원격으로는 user.name입니다.
두 컴퓨터 A와 T에 각각 user.name으로 연결하기 위해 ~/.ssh/A_id_rsa 및 ~/.ssh/T_id_rsa라는 로컬 키가 있습니다.
다음은 T에서 실행해야 하는 TA 터널을 연결하는 스크립트입니다.
#!/bin/bash SSH_KEY="-i /home/user.name/.ssh/A_id_rsa" REMOTE_USER="사용자.이름" GATEWAY_MACHINE="A.domain.com" GATEWAY_SSH_PORT="22123" ssh -N -R2201:127.0.0.1:22 -p ${GATEWAY_SSH_PORT} ${SSH_KEY} ${REMOTE_USER}@${GATEWAY_MACHINE}
다음은 L에서 실행되어야 하는 LA 터널을 연결하는 스크립트입니다.
#!/bin/bash SSH_KEY="-i /home/user/.ssh/A_id_rsa" REMOTE_USER="사용자.이름" GATEWAY_MACHINE="A.domain.com" GATEWAY_SSH_PORT="22123" ssh -N -L2201:127.0.0.1:2201 -p ${GATEWAY_SSH_PORT} ${SSH_KEY} ${REMOTE_USER}@${GATEWAY_MACHINE}
그런 다음 로컬 호스트의 /etc/hosts 파일에 다음을 추가하여 터널의 로컬 측을 T:-로 참조할 수 있습니다.
127.0.0.1T
그런 다음 이 스크립트를 사용합니다. 이 예에서는 이에 연결하기 위해 /usr/local/bin/T라는 이름을 사용합니다.
#!/bin/bash SSH_KEY="-i /home/user/.ssh/T_id_rsa" REMOTE_USER="사용자.이름" ssh -p 2201 ${SSH_KEY} ${REMOTE_USER}@T
TA 터널은 역방향이므로 -R이고 LA 터널러는 로컬이므로 -L입니다. 스크립트의 -N은 A에서 쉘을 시작하는 것을 방지하므로 일반적으로 &를 사용하여 백그라운드에서 실행하거나 ctrl+Z를 누르고 bg를 실행하여 비밀번호를 입력한 후 실행합니다. A_id_rsa를 키체인에 아직 로드하지 않은 경우 잠금 해제하세요.