동적 IP를 통해 인터넷 SSH를 통해 항상 내 시스템에 연결하도록 어떻게 구성합니까?

동적 IP를 통해 인터넷 SSH를 통해 항상 내 시스템에 연결하도록 어떻게 구성합니까?

기본적으로 저는 SSH 서버(머신 A)와 SSH 클라이언트(머신 B)가 인터넷에 액세스할 수 있는 한 네트워크 구성에 관계없이 TeamViewer와 같은 작업을 수행할 수 있기를 원합니다. 컴퓨터 C), 액세스 권한을 얻을 수 있습니다. 그 이유는 컴퓨터 A를 이동하고 연결한 다음 미리 구성된 여러 Wi-Fi 네트워크(각 네트워크는 고유하거나 서로 다름) 중 하나에 자동으로 연결할 수 있기를 원하기 때문입니다. 네트워크에서 포트 전달 또는 유사한 기능을 구성하고 컴퓨터 B에서 인터넷을 통해 로그인할 수 있습니다.

어떻게 해야 하나요? 핸드셰이크를 돕기 위해 고정 IP 주소를 사용하여 서버에 무언가를 설정하는 것은 괜찮지만, 뭔가가 이미 존재하는 경우(teamviewer처럼) 제3자 서버를 사용해도 괜찮습니다.

명확성을 위해 편집: AB와 C라는 3개의 컴퓨터가 있습니다.

A는 임의의 위치에서 전원을 켜고 끄고 사전 구성된 WiFi 네트워크에 연결하는 헤드리스 라즈베리 파이입니다.

B는 연결하려는 적절한 모니터, 키보드 등이 있는 시스템입니다.

C는 고정 IP 주소가 있고 B에서 안정적으로 SSH를 사용할 수 있으며 B가 A에 연결하는 데 필요한 모든 것을 설치할 수 있는 임대 AWS 서버입니다.

답변1

인터넷에 머신 C가 있으므로 거기에 호출된 특수 계정을 생성 하고 공개/개인 키를 사용하여 A에 계정을 생성하면 공개 키를 C의 계정 sesame에 복사했습니다.sesame

이제 A에서 C로 로그인할 수 있지만 다음을 수행할 수 있습니다.

ssh -N -R 19930:localhost:22 sesame@yourserverC

(예를 들어 10초 동안 절전 명령문과 결합하고 WiFi가 종료되어 연결이 끊어진 경우 연결을 다시 설정하기 위해 무한 루프로 래핑할 수 있습니다.)

머신 B에서 일반적으로 C에 있는 계정에 로그인합니다(해당 계정일 수도 있지만 꼭 그럴 필요는 없습니다 sesame. 저는 다른 계정을 사용합니다). C를 입력한 후 다음 명령을 사용하여 A에 로그인합니다.

ssh localhost -p 19930

물론 19930 이외의 숫자를 사용해도 됩니다.

A의 개인 키가 비밀번호로 보호되어 있지 않으면 ssh -N -R ...다음에서 실행할 수 있습니다. 이 경우 컴퓨터 A가 침해/도난되는 경우 서버 C에 대한 위험이 제한되도록 기능이 제한된 별도의 계정을 /etc/rc.local만드십시오 . sesame그렇기 때문에 B에서 C로 이동하려면 별도의 계정을 사용하는 것이 좋습니다.

sesame실제로 in 의 로그인 셸을 /etc/passwdto 로 설정할 수 있으므로 /bin/false더 이상 이 계정을 사용하여 로그인할 수 없습니다.

답변2

IPv6 터널을 설치합니다(예:식스)를 라즈베리 파이에 설치하세요. 이제 Pi가 온라인 상태인 동안 온라인 상태가 유지되는 영구적인 고정 IPv6 주소를 갖게 됩니다. 이제 Pi가 세계와 연결되어 있으므로 Pi를 보호하세요.

B가 IPv6 네트워크에 연결되어 있으면 Pi에 직접 연결됩니다. B가 IPv6 네트워크에 연결되어 있지 않은 경우 C를 점프 서버로 사용하고 IPv4를 통해 C에 연결한 다음 IPv6을 통해 C에서 Pi로 SSH를 통해 연결합니다.

답변3

또한 이것을 살펴보십시오:

사용된 기술은 허용된 답변에 설명된 것과 동일하지만 일부 스크립팅을 사용하여 작업을 자동화하고 솔루션을 보다 일반적으로 만듭니다. 또한 문제가 발생하더라도 메인 시스템이 안전하도록 Docker 컨테이너 내부의 전체 구성을 구성합니다.

그러나 A에서 C로의 자동 연결을 제공하지 않으므로 수동으로 시작해야 합니다. 요구 사항을 정확하게 충족하도록 솔루션을 약간 사용자 정의할 수도 있습니다.

답변4

역방향 SSH 포트 전달을 조사해야 한다고 생각합니다. 즉, 먼저 다음 구문을 사용하여 A에서 C로 ssh를 시작한 다음 해당 포트를 사용하여 C에서 A로 다시 터널링합니다. 이렇게 하면 R-Pi에 이미 터널이 있으므로 A의 홈 방화벽에 닿지 않습니다.

ssh -R 2210:localhost:22 myCoolAwsSite.com

이 작업을 수행할 때 안전에 미치는 영향을 고려하십시오. 재부팅 후 연결을 다시 설정하기 위해 cron jujitsu를 추가할 수 있습니다.

관련 정보