서버를 통해 클라이언트에서 임베디드 Linux로 SSH

서버를 통해 클라이언트에서 임베디드 Linux로 SSH

공용 IP 주소가 없는 임베디드 Linux(C라고 함)에 어디에서나 직접 연결할 수 있기를 원합니다.

C는 (SSH -R을 사용하여) 서버에 대한 연결을 설정할 수 있으며, 서버에 SSH를 연결하면 임베디드 Linux에 SSH를 연결할 수 있습니다.

그러나 먼저 서버에 SSH를 연결하지 않고도 클라이언트에서 C로 SSH를 연결할 수 있기를 바랍니다. (C에서 클라이언트로 SSH -R을 사용하여 연결을 설정할 수 없습니다)

이것이 가능합니까? 그렇다면 어떻게 가능합니까?

답변1

꽤 쉽게 이 작업을 수행할 수 있습니다. 한 가지 방법은 SSH의 원격 포트 전달을 사용하는 것입니다. 이를 통해 C는 서버에 다음과 같이 포트를 다시 전달하도록 지시합니다.

ssh -R 2222:localhost:22 server

C에서 실행되는 이 명령은 서버에 포트 2222에 대한 연결을 취하고 이를 포트 22의 C로 전달하도록 지시합니다.

마찬가지로 방화벽 규칙을 통해 서버에서 포트 전달을 설정할 수 있습니다.

답변2

전달된 포트에 연결하려면 다음 네 가지가 필요합니다.

  • 에 대한 첫 번째 인수로 서버 공용 IP/호스트 이름을 지정하십시오. 그렇지 않으면 서버 외부에서는 당연히 액세스할 수 없는 -R에서만 수신 대기하게 됩니다 .localhost
  • GatewayPorts전달된 포트를 외부에서 액세스할 수 있도록 서버를 구성하십시오 .
  • -g기본적으로 클라이언트 측에서도 동일한 기능을 허용하려면 스위치를 사용하세요.
  • 2222서버 방화벽에서 포트를 엽니다 .

명령은 다음과 같습니다.

ssh -g -R server:2222:localhost:22 server

관련 정보