클라이언트와 두 서버 사이에 shh 터널을 설정하는 방법을 알아내려고 합니다. ServerA를 통해 ServerB에 연결하려면 클라이언트가 필요합니다.
사실은 다음과 같습니다.
- 클라이언트는 공용 IP를 통해 ServerA에 연결할 수 있습니다.
- 클라이언트가 ServerB에 연결할 수 없습니다.
- ServerA는 ServerB에 연결할 수 없습니다. (서버는 ServerA와 NAT 뒤에 원격으로 격리되어 있습니다.)
- ServerB는 공개 IP를 통해 ServerA에 연결할 수 있습니다.
- ServerA와 ServerB 모두 호스트에 연결할 수 없습니다. (클라이언트에는 공용 IP가 없습니다).
이를 설정하는 정확한 ssh 명령은 무엇입니까?
답변1
클라이언트를 서버 A에 연결하고, 서버 B를 서버 A에 연결하고, 서버 A를 통해 터널링할 수 있습니다.
클라이언트 측에서:
ssh -L 2200:127.0.0.1:2200 user@serverA
서버 B에서:
ssh -R 2200:127.0.0.1:22 user@serverA
그런 다음 클라이언트에서 서버 B로 SSH를 수행하려면 클라이언트에서 다음을 실행하면 됩니다.
ssh -P 2200 user@serverB
답변2
그것이 내가 알아낸 방법이다.
클라이언트 측에서:
ssh -A user@ServerB
서버 B에서
ssh -N -R 44444:localhost:22 user@ServerA -p 2222
-p 2222
제 경우에는 SSH 서버가 기본 포트에서 수신 대기하지 않았습니다.22
클라이언트 측에서:
ssh user@localhost -p 44444