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

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

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

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

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

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

답변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

관련 정보