ssh 서버 리셋 기능이 홈 광대역 동적 IP 자원 발표에서의 응용

ssh는 매우 강력한 상용 도구이다.ssh의 리셋 기능을 이용하여 우리는 동적 자원을 매우 편리하게 발표하고 국역 네트워크의 비공용 네트워크 IP 기계 자원에 대한 원격 접근을 실현할 수 있다.
가정용 광대역은 일반적으로 건물 안의 많은 집의 랜 IP가 하나의 공망 IP를 공유하여 인터넷에 접속한다.광섬유 광대역이라도 랜에서 자주 작동한다.이 경우 집에서 서버(예를 들어 원격 데스크톱, 웹 페이지)를 설치하면 동적 도메인 이름 소프트웨어를 설치해도 외부에서 연결할 수 없습니다.우리 학교 기숙사로 말하자면 2층 NAT를 지나갔다.
요청 202.X.X.X:80
X
X
X
LAN 서버 192.168.100.100:80
복도 도로는 192.168.100.1이다.
영역 라우팅 10.X.X.X
공용 네트워크 경로: 202.X.X.X
내빈
위의 그림에서 LAN 서버는 2층 네트워크 뒤에 있으며 라우터 관리자 권한이 없습니다.따라서 일부 인터넷 관통 서비스를 구매하지 않으면 클라이언트의 연결을 실현할 수 없다.공용 인터넷 주소를 직접 사용하면 캠퍼스 공유기의admin 웹 페이지에 접근할 수 있으며 192.168.100.100의 웹 페이지에 접근할 수 없습니다.
우리는 ssh가 제공하는 리디렉션 기능을 사용하여 고정 IP를 갖춘 컴퓨터를 빌려 랜의 서비스에 접근할 수 있다.저원가의 해결 방법은 ssh를 통해 192.168.100.100 사무기를 구름 허구에 발표하는 것이다.

준비 작업

  • 가장 일반적인 싱글 코어 구성, 512MB 메모리를 사용하여 엔트리급 클라우드 가상 머신을 구입하면 됩니다
  • 오픈 클라우드 가상 기기의 ssh 포트(22)와 랜 서비스 발표에 사용되는 포트(예를 들어 8990).많은 클라우드 서비스 업체들이 기본적으로 80포트를 개방하지 않는다는 점에 각별히 주의해야 한다.작은 포트 80을 사용하면 등록해야 합니다.따라서 큰 포트를 선택할 수 있습니다..
  • 우리의 192.168 랜 80 포트 서비스는 윈도우즈의 것이기 때문에 ssh 클라이언트를 설치해야 한다. 예를 들어git를 직접 설치하면 된다.git-bash에 완전한 ssh 클라이언트가 있습니다.또는 msys2, 윈도우즈 10을 설치하면 자신이 가지고 있는 linux 하위 환경을 직접 설치할 수 있습니다

  • 다음 절차를 시작합니다.

    SSH 자동 로그인 구성


    이 단계에서 우리는 가정국역 네트워크에서 클라우드 허블에 연결된다.
    ssh
    LAN 서버 192.168.100.100
    복도 도로는 192.168.100.1이다.
    영역 라우팅 10.X.X.X
    공용 네트워크 경로: 202.X.X.X
    운허기
    1. 인증서를 랜 머신에 로그인하도록 설정하고 로그인한 클라이언트 인증서를 생성합니다.
    [user@happy ~]$ ssh-keygen
    

    2. 인증서를 클라우드에 복사
    [user@happy ~]$ scp .ssh/id_rsa.pub  [email protected]:/home/username/tmp.pub
    

    사용자 이름을 사용자 이름으로 바꾸고 XXX는 자신의 클라우드 IP 또는 도메인 이름으로 바꾸면 됩니다.
    3. ssh는 클라우드 가상 머신에 로그인합니다. 이때 구령이 필요합니다.
    [user@happy ~]$ ssh [email protected]
    [email protected]'s password:???[ENTER]
    Last login: ...
    
    [username@cloud ~]$  cat tmp.pub >> .ssh/authorized_keys 
    [username@cloud ~]$  rm tmp.pub
    

    이 명령은 방금 클라우드에 복사한 키를 클라이언트 테이블에 삽입합니다.ssh/authorized_keys 중.나중에 tmp를 삭제합니다.pub
    4. 로그인 권한 설정을 확인하려면 상술한 절차에 따라 설정한 경우가 많습니다. 클라우드 클라이언트나 서비스를 다시 시작하면 구령을 물어봅니다.자동 로그인을 확인하려면 다음 옵션을 차례로 확인하십시오.
  • 프로필을 확인합니다
  • [username@cloud ~]$  sudo vi /etc/ssh/sshd_config 
    

    다음 옵션 참고: RSAAuthentication yes PubkeyAuthentication yes GatewayPorts yes AuthorizedKeysFile.ssh/authorized_keys
    이 중 Gateway Ports를 켜야 합니다. 그렇지 않으면 구름 허점에서 127.0.1에서만 감청할 수 있습니다.
  • 몇 가지 관건적인 위치의 권한을 검사하고 엄격하게 한다
  • [username@cloud ~]$  sudo chmod g-w /home/username
    [username@cloud ~]$  sudo chmod 700 ~/.ssh
    [username@cloud ~]$  sudo chmod 600 ~/.ssh/authorized_keys
    

    ssh는 안전을 위해 이 몇 개의 폴더, 파일의 권한을 검사합니다.만약 너무 충분하게 운전했다면, 구령을 돌려 로그인하지 않았을 것이다.
    이로써 클라우드 클라이언트 서비스를 재개하면 바로 로그인할 수 있을 것이다.
    참고: ssh 인증서 로그인 (실례 상세) 해결 SSH 비밀 해제 로그인 설정 성공 후 무효 문제

    리디렉션 구성


    이 단계에서 우리는 ssh 서버와 클라이언트 사이의 플러그인을 통해 역방향 채널을 설정합니다.클라우드 클라이언트의 연결을 기다리는 8990 포트를 엽니다.8990을 가리키는 모든 방문은 192.168.100.100:80으로 전달됩니다.이 상황은 왜 공용 네트워크에서 국역 네트워크로 전송될 수 있습니까?그것은 최초의 ssh 연결이 랜에서 시작되었기 때문이다.일단 연결이 성공하면 TCP 소켓(SSL)의 통신은 양방향이다.
    LAN 서버 192.168.100.100:80
    복도 도로는 192.168.100.1이다.
    영역 라우팅 10.X.X.X
    공용 네트워크 경로: 202.X.X.X
    클라우드 가상 머신 XXX.XXX.XXX.XXX:8990
    로그인한 후 리디렉션 기능을 사용하여 기능 발표를 할 수 있습니다.
    [username@cloud ~]$  exit
    [user@happy ~]$ ssh [email protected] -R *:8990:192.168.100.100:80
    [username@cloud ~]$ netstat -na | grep "tcp"
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
    tcp        0      0 0.0.0.0:8990            0.0.0.0:*               LISTEN
    ...
    

    여기서 중요한 단계는 -R 매개 변수를 사용하여 유사한 프록시 작업을 하는 것입니다. -R 매개변수에는 다음 네 가지 섹션이 있습니다.
    원격 감청 주소 (클라우드 가상 머신): 원격 감청 포트 (클라우드 가상 머신): LAN 서버 주소: LAN 서버 포트
    실행이 완료되면 모든 액세스 클라우드 8990 포트의 TCP 연결은 ssh에 의해 랜으로 리디렉션되어 에이전트를 실현합니다.

    테스트


    클라이언트(휴대폰일 수 있음) 브라우저에서 액세스http://XXX.XXX.XXX.XXX:8990웹 페이지를 열면,
    3. 답장
    3. 답장
    3. 답장
    3. 답장
    2. 연결
    2. 연결
    2. 연결
    2. 연결
    1. 발기
    3. 답장
    LAN 서버 192.168.100.100:80
    복도 도로는 192.168.100.1이다.
    영역 라우팅 10.X.X.X
    공용 네트워크 경로: 202.X.X.X
    클라우드 가상 머신 XXX.XXX.XXX.XXX:8990
    핸드폰

    문제가 있다

  • ssh 연결이 끊기면 채널이 끊깁니다
  • ssh 연결이 끊기면 예의에 어긋나는 연결로 인해 다시 연결될 때 8990 포트의 통신이 원활하지 않을 수 있습니다.이럴 때 클라우드 허블을 다시 켜야 하는데..
  • 좋은 웹페이지 즐겨찾기