SSH를 사용하여 PC_C(공용 IP 포함)를 사용하거나 이를 통해 PC_A(개인 IP 포함)를 PC_B(개인 IP 포함)에 연결합니다.

SSH를 사용하여 PC_C(공용 IP 포함)를 사용하거나 이를 통해 PC_A(개인 IP 포함)를 PC_B(개인 IP 포함)에 연결합니다.

원래

클라이언트가 실행 중입니다.컴퓨터_A(PC_A는 LAN으로 연결되어 있으므로비공개 IP)

서버가 실행되고 있습니다컴퓨터_B(PC_B는 LAN으로 연결되어 있으므로비공개 IP)

==> 둘 사이를 연결하고 싶습니다컴퓨터_A그리고컴퓨터_B, 비공개 IP가 있기 때문에 직접 할 수는 없습니다.

터널을 이용하려고 생각했는데세 번째 PC_C를 사용하는 SSH, 알려진공개 IP, TCP에서 둘을 연결하는 브리지 또는 릴레이로 사용됩니다.

할 수 있나요설정을 설명해주세요모든 머신에서 SSH와 명령줄을 실행해야 합니까?

그런데 저는 Windows 플랫폼을 사용하고 있습니다.

미리 감사드립니다 :)

답변1

PC_A에서 SSH를 통해 액세스할 수 있고 그 반대로 액세스할 수 있는 세 번째 서버가 필요합니다. 이를 PC_G(게이트웨이)라고 하겠습니다.

PC_A의 $HOME/.ssh/config에 다음을 배치합니다.

Host PC_B
  ProxyCommand ssh PC_G nc -w 120 PC_B 22

이제 ssh PC_BPC_A에서 실행하면 ssh는 PC_B의 구성을 찾고 지정된 에이전트 명령을 실행해야 함을 찾습니다. 따라서 ssh PC_G nc -w 120 PC_B 22PC_G에서 명령을 실행하고 시작합니다 nc -w 120 PC_B 22. netcatPC_B 포트 22(ssh 포트)에 대한 연결을 여는 명령 입니다 . 이제 로컬 SSH는 이 터널을 통해 PC_B의 SSH 클라이언트에 연결할 수 있습니다.

관련 정보