클라이언트와 두 서버 간의 SSH 전달

클라이언트와 두 서버 간의 SSH 전달

클라이언트와 두 서버 사이에 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

관련 정보