![SSH를 사용하여 PC_C(공용 IP 포함)를 사용하거나 이를 통해 PC_A(개인 IP 포함)를 PC_B(개인 IP 포함)에 연결합니다.](https://linux55.com/image/126335/SSH%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20PC_C(%EA%B3%B5%EC%9A%A9%20IP%20%ED%8F%AC%ED%95%A8)%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B1%B0%EB%82%98%20%EC%9D%B4%EB%A5%BC%20%ED%86%B5%ED%95%B4%20PC_A(%EA%B0%9C%EC%9D%B8%20IP%20%ED%8F%AC%ED%95%A8)%EB%A5%BC%20PC_B(%EA%B0%9C%EC%9D%B8%20IP%20%ED%8F%AC%ED%95%A8)%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%A9%EB%8B%88%EB%8B%A4..png)
원래
클라이언트가 실행 중입니다.컴퓨터_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_B
PC_A에서 실행하면 ssh는 PC_B의 구성을 찾고 지정된 에이전트 명령을 실행해야 함을 찾습니다. 따라서 ssh PC_G nc -w 120 PC_B 22
PC_G에서 명령을 실행하고 시작합니다 nc -w 120 PC_B 22
. netcat
PC_B 포트 22(ssh 포트)에 대한 연결을 여는 명령 입니다 . 이제 로컬 SSH는 이 터널을 통해 PC_B의 SSH 클라이언트에 연결할 수 있습니다.