![SSH를 사용하여 원격 컴퓨터 간에 임시 프록시 설정](https://linux55.com/image/223137/SSH%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%9B%90%EA%B2%A9%20%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B0%84%EC%97%90%20%EC%9E%84%EC%8B%9C%20%ED%94%84%EB%A1%9D%EC%8B%9C%20%EC%84%A4%EC%A0%95.png)
2개의 SSH 터널을 연결하고 싶습니다.
내 컴퓨터 myhost.example.com에서hosta.example.com 및hostb.example.com으로 SSH를 통해 연결할 수 있습니다. (그 사이에 박스 호핑 방화벽과 다른 것들이 있을 수 있지만 이것이 .ssh_config에 정의되어 있다고만 말하면 충분합니다.) ).
Hosta는 Hostb에 직접 연결할 수 없으며 그 반대의 경우도 마찬가지입니다. "-L"과 "-R"을 사용하면 SSH 연결을 통해 터널을 만들 수 있지만 터널의 한쪽 끝은 항상 내 로컬 컴퓨터라는 것을 알고 있습니다.
Hosta.example.com이 myhost.example.com을 통해 Hostb.example.com에 연결할 수 있도록 터널에 가입하려면 어떻게 해야 합니까?
(Google을 사용해 보았지만 내가 찾은 것은 단일 터널을 설정하는 방법을 알려주는 백만 개의 웹 페이지뿐이었습니다. 2에 가입하는 것이 아닙니다.)
답변1
로컬 컴퓨터에서 다음 연결을 성공적으로 설정한 경우:
ssh -L 1234:localhost:5678 hostb.example.com
그런 다음 연결된 모든 로컬 프로세스는 localhost:1234
Hostb에서 수신 대기 중인 모든 항목에 도달합니다 localhost:5678
.
로컬 컴퓨터에서 이 작업을 수행하는 경우:
ssh -R 9876:localhost:1234 hosta.example.com
그런 다음 Hosta에 연결되는 Hosta의 모든 프로세스는 localhost:9876
로컬에 도달합니다 localhost:1234
.
그러나 로컬은 localhost:1234
정확히 첫 번째 터널( )의 로컬 끝이므로 ssh -L …
이제 Hosta에서 Hosta로의 연결은 localhost:9876
결국 Hostb에서 수신 중인 모든 항목에 도달하게 됩니다 localhost:5678
. 다음은 두 개의 터널 체인의 예입니다.