SSH 포트 전달을 위해 점프 호스트 사용

SSH 포트 전달을 위해 점프 호스트 사용

점프 호스트가 AWS Cloud9과 작동하도록 하는 방법을 알아내려고 노력 중입니다. 아래 사진은 에서 가져온 것입니다.블로그 게시물(내 준비 서버에서) 이 주제에 대한 기사를 쓰고 있습니다. 전체 장면(3,000단어 미만)은 블로그 게시물을 참조하세요.

차트

다음은 관리자가 클라이언트(노트북)를 사용하여 수행하는 4방향 초기화 순서입니다.

  1. 관리자는 $C9_TARGET_HOST(명령줄) 터미널을 사용하여 대상 서버( )에 로그인하고 터미널을 열어 둡니다.
  2. 관리자는 두 번째(명령줄) 터미널을 사용하여 점프 호스트( )에 로그인하고 $C9_JUMP_HOST터미널을 열어 둡니다.
  3. 관리자는 $C9_JUMP_PORT점프 호스트에서 포트( )를 열어 sshAWS Cloud9의 연결을 수락합니다.
  4. 관리자는 웹 브라우저를 Cloud9 웹 콘솔에 연결하여 Cloud9 환경 정의를 시작합니다.
  5. 관리자는 Cloud9 SSH 키를 제공하는 웹 페이지에 도달하면 해당 키를 클립보드에 복사합니다.
  6. 관리자는 대상 서버에 연결된 개방형 터미널을 사용하여 다음을 수행합니다.
      에 Cloud9 SSH 키를 추가합니다 ~/.ssh/authorized_hosts. 새 host블록을 추가하면 ~/.ssh/config대상 서버에서 점프 호스트로의 역방향 SSH 포트 전달 터널을 더 쉽게 정의할 수 있습니다.
  7. 관리자는 점프 호스트에 연결된 개방형 터미널을 사용하여 다음을 수행합니다.
      Cloud9 SSH 키 를 ~/.ssh/authorized_hosts.host~/.ssh/configssh
  8. 관리자는 ssh대상 서버에서 점프 호스트까지 역방향 포트 전달 터널을 정의했습니다. 즉, 점프 호스트가 점프에서 지정된 포트( )와 연결을 설정하면 ssh 다음을 통해 대상 서버로 다시 연결됩니다. 터널 및 전달 명령 $C9_JUMP_PORT호스트.
    SSH -fNR \
    $C9_JUMP_HOST:$C9_JUMP_PORT:localhost:22 $C9_JUMP_USER@$C9_JUMP_HOST
    "-T" 옵션이 도움이 되는지 궁금합니다. "nohup"을 사용해야 합니까?
  9. 관리자는 방금 생성한 정의를 사용하여 역방향 포트 전달 터널을 생성합니다. nohup관리자가 로그아웃한 후에도 그대로 유지되도록 터널을 생성할 때 사용됩니다.
  10. Cloud9 웹 콘솔에서 점프 호스트를 정의한 후 관리자는 다음 버튼을 누릅니다.
  11. Cloud9는 점프 호스트에 연결을 시도합니다.
  12. Cloud9은 점프 호스트를 통해 대상 서버에 연결을 시도합니다.
  13. 성공하면 Cloud9은 관리자 웹 페이지를 다음 단계로 진행합니다.
  14. 관리자는 Cloud9 환경이 정의될 때까지 나타나는 각 다음 버튼을 클릭합니다.

해결책이 있는 사람이라면 누구에게나 블로그 게시물을 통해 공로를 인정하고 싶습니다.

답변1

그렇다면 원하는 것은 대상(개인 서버)에서 점프 호스트(공용 서버)로 역방향 터널을 설정하여 AWS에서 대상으로 연결을 설정할 수 있도록 하는 것입니다.

이 경우 대상에서 역방향 터널을 구축해야 하므로 다음과 같이 호출할 수 있습니다.

ssh -f -N -R $JUMPER:$PORT:localhost:22 $USER@$JUMPER

역방향 터널을 열어두기 위해 "ssh" 대신 "autossh"를 시도할 수도 있습니다. 이 명령은 모니터링 포트에 대한 추가 매개변수를 사용합니다.

autossh -M $MONITORPORT -f -N -R $JUMPER:$PORT:localhost:22 $USER@$JUMPER

$PORT:localhost:22 부분만 사용하는 경우 다음 두 단계를 거쳐 목표에 도달해야 합니다.

  1. AWS에서 서버를 점프하기 위한 SSH
  2. 역방향 터널링을 사용하려면 점프 서버에서 localhost:$PORT로 SSH를 실행하세요.

도움이 되었기를 바랍니다, 조지

관련 정보