내용으로 건너뛰기

브라우저 기반 SSH 콘솔을 사용하여 Lightsail 인스턴스에 액세스하는 경우 오류를 받는 이유는 무엇입니까?

5분 분량
0

브라우저 기반 SSH 콘솔을 사용하여 Amazon Lightsail 인스턴스에 연결하면 ‘UPSTREAM_ERROR [515]’, ‘UPSTREAM_NOT_FOUND [519]’ 또는 ‘CLIENT_UNAUTHORIZED [769]’ 오류 메시지를 받습니다.

간략한 설명

다음 오류 메시지 중 하나가 표시됩니다.

  • "Your instance encountered an error and has closed the connection. Try again or contact customer support. UPSTREAM_ERROR [515]"
  • "An error occurred and we were unable to connect or stay connected to your instance. If this instance has just started up, try again in a minute or two. UPSTREAM_NOT_FOUND [519]"
  • "Login failed. If this instance has just started up, try again in a minute or two. CLIENT_UNAUTHORIZED [769]"

SSH 콘솔을 통해 Lightsail 인스턴스에 연결할 수 없으면 ‘UPSTREAM_ERROR [515]’ 및 ‘UPSTREAM_NOT_FOUND [519]’ 오류가 발생합니다.

다음과 같은 이유로 연결 문제가 발생할 수 있습니다.

  • 인스턴스 부팅 실패, 상태 확인 실패 또는 CPU나 메모리 리소스가 과도하게 사용되었습니다.
  • 운영 체제(OS) 수준 방화벽은 SSH 포트 액세스를 차단합니다.
  • SSH 포트 22는 기본 포트 구성이 아닙니다.
  • SSH 서비스가 다운되었습니다.

Lightsail 인스턴스에 SSH 인증 문제가 있는 경우 ‘CLIENT_UNAUTHORIZED [769]’ 오류가 발생합니다.

다음과 같은 이유로 인증 문제가 발생할 수 있습니다.

  • /etc/ssh/lightsail_instance_ca.pub Lightsail 시스템 키를 잘못 구성했습니다.
  • Ubuntu 인스턴스 버전을 20.04 이상으로 업그레이드할 때 필요한 SSH 구성을 사용하지 않았습니다.

해결 방법

인스턴스 상태 확인

인스턴스 지표를 확인하여 시스템 또는 인스턴스 상태 확인 실패를 확인합니다.

시스템 상태 확인에 실패하면 인스턴스를 중지하고 다시 시작하여 정상 하드웨어로 마이그레이션하십시오.

경고: 인스턴스를 중지하고 시작할 때마다 인스턴스의 퍼블릭 IP 주소가 변경됩니다. 주소를 변경하지 않으려면 인스턴스를 중지하기 전에 고정 IP 주소를 할당하십시오.

인스턴스 상태 확인에 실패한 경우 OS 수준 문제로 인해 부팅 오류가 발생했을 수 있습니다. 또는 인스턴스의 리소스가 과도하게 사용될 수 있습니다. 자세한 내용은 Lightsail 인스턴스가 응답하지 않는 일반적인 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

방화벽 문제 해결

iptables 또는 UFW(복잡하지 않은 방화벽)와 같은 OS 수준 방화벽이 액세스를 차단하는 경우 다음 작업 중 하나를 수행하십시오.

  • 터미널 또는 PuTTY를 통해 SSH에 액세스할 수 있는 경우 방화벽과 /etc/hosts.deny 파일에서 거부 규칙을 제거합니다. cPanel 인스턴스의 경우 웹 호스트 관리자(WHM) 콘솔을 사용하여 방화벽 규칙을 제거합니다.
  • SSH 액세스 권한이 없는 경우 새 인스턴스를 만들고 방화벽과 /etc/hosts.deny 파일을 비활성화하는 시작 스크립트를 추가합니다.

시작 스크립트를 사용하여 OS 수준 방화벽을 비활성화하려면 다음 단계를 완료하십시오.

  1. Lightsail 콘솔을 엽니다.

  2. 인스턴스의 수동 스냅샷을 만듭니다.

  3. 스냅샷에서 인스턴스를 만듭니다.
    참고: 이전 인스턴스와 동일한 가용 영역을 선택합니다.

  4. 시작 스크립트 추가를 선택한 후 다음 스크립트를 추가합니다.

    sudo ufw disable
    sudo iptables -F
    sudo mv /etc/hosts.deny /etc/hosts.deny_backup
    sudo touch /etc/hosts.deny
    sudo systemctl enable sshd
    sudo systemctl restart sshd

    참고: 위의 예제 스크립트는 UFW 방화벽을 비활성화하고, 모든 Iptable 체인 또는 방화벽 규칙을 플러시하고, /etc/hosts.deny 파일의 이름을 변경하여 비활성화합니다.

  5. 새 인스턴스 플랜을 선택하거나 이전 인스턴스와 동일한 플랜을 사용합니다.

  6. 인스턴스 이름을 입력한 다음, 인스턴스 만들기를 선택합니다.

새 인스턴스가 실행되기 시작한 후 10~15분 정도 기다린 다음, 브라우저 기반 SSH 콘솔을 사용하여 인스턴스에 연결하십시오.

참고: 이전 인스턴스에 고정 IP 주소가 있는 경우 새 인스턴스에 고정 IP 주소를 할당합니다. Lightsail 콘솔의 네트워킹 탭을 선택하고 고정 IP 주소를 분리한 다음, 새 인스턴스에 연결합니다.

SSH 서비스 문제 해결

인스턴스에서 SSH 서비스가 실행 중이거나 활성화되지 않은 경우 SSH 연결이 실패하고 ‘UPSTREAM_NOT_FOUND [519]’ 오류가 발생합니다. 이 문제를 해결하려면 Lightsail 인스턴스에 AWS Systems Manager의 기능인 Session Manager를 구성하십시오. 그런 다음, SSH 서비스 없이 인스턴스에 액세스하여 문제를 해결합니다.

다음 단계를 완료하십시오.

  1. 다음 SSH 인증 로그 파일 중 하나를 검토하여 오류 메시지 또는 인증 시도 실패를 확인합니다.
    Ubuntu 로그 파일:
    /var/log/auth.log
    Amazon Linux 로그 파일:
    /var/log/secure

  2. 파일에 오류 메시지가 표시되면 다음 작업 중 하나를 수행합니다.
    ‘Invalid user’ 또는 ‘Failed password’ 메시지가 표시되면 /etc/ssh/sshd_config 파일에서 SSH 키 구성을 확인합니다.
    ‘Connection refused’ 메시지가 표시되면 다음 명령을 실행하여 SSH 서비스가 실행 중인지 확인합니다.

    sudo systemctl status sshd

    ‘Permission denied’ 메시지가 표시되면 다음 명령을 실행하여 SSH 디렉터리 및 키 파일에 대한 권한을 확인합니다.

    sudo chmod 700 ~/.ssh
    sudo chmod 600 ~/.ssh/authorized_keys
  3. 오류 메시지가 없는 경우 다음 명령을 실행하여 SSH 구성을 테스트하고 다시 시작합니다.

    sudo sshd -t
    sudo systemctl restart sshd

Lightsail 시스템 키 복원

/etc**/ssh/lightsail_instance_ca.pub** 키가 없는 경우 다음 단계를 완료하십시오.

  1. 터미널 또는 PuTTY를 통해 SSH에 액세스할 수 있는 경우 다음 명령을 실행하여 ssh-rsa 키를 확인합니다.

    sudo cat /var/lib/cloud/instance/user-data.txt | grep ^ssh-rsa
  2. 다음 작업 중 하나를 수행합니다.
    키가 있는 경우 다음 명령을 실행하여 키를 복원합니다.

    sudo sh -c "cat /var/lib/cloud/instance/user-data.txt | grep ^ssh-rsa > /etc/ssh/lightsail_instance_ca.pub"
        sudo sh -c "echo >> /etc/ssh/sshd_config"
        sudo sh -c "echo 'TrustedUserCAKeys /etc/ssh/lightsail_instance_ca.pub' >> /etc/ssh/sshd_config"
        sudo systemctl restart sshd

    ssh-rsa 키를 받지 못하거나 SSH를 사용하여 인스턴스에 연결할 수 없는 경우 인스턴스의 스냅샷을 만듭니다. 스냅샷에서 새 인스턴스를 시작하면 Lightsail 시스템 키가 서버에 자동으로 추가됩니다.

Ubuntu 20.04 이상에서 SSH 구성

이전 Ubuntu 인스턴스 버전을 20.04로 업그레이드한 경우 인증 기관(CA)이 ssh-rsa 키를 사용하여 인증서에 서명하도록 수동으로 허용해야 합니다. Ubuntu 버전 20.04 이상을 실행하도록 인스턴스를 만든 경우 CA는 기본적으로 ssh-rsa 알고리즘을 사용할 수 있습니다.

CA를 수동으로 허용하려면 다음 단계를 완료하십시오.

  1. 터미널 또는 PuTTY 애플리케이션과 같은 SSH 클라이언트를 사용하여 인스턴스에 연결합니다.

  2. /etc/ssh/sshd_config SSH 구성 파일을 엽니다.

  3. Ubuntu 인스턴스 버전의 파일에 CA 파라미터를 추가합니다.

    Ubuntu 20.04:
    다음 명령을 실행하여sshd_config 파일에 CASignatureAlgorithms 파라미터 라인을 추가합니다.

    sudo vi /etc/ssh/sshd_config
    cat /etc/ssh/sshd_config | egrep "CASignature"
    CASignatureAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

    Ubuntu 22.04:
    다음 명령을 실행하여 CASignatureAlgorithmsPubkeyAcceptedAlgorithms 파라미터 라인을 모두 sshd_config 파일에 추가합니다.

    sudo vi /etc/ssh/sshd_config
    cat /etc/ssh/sshd_config | egrep "CASignature|PubkeyAccepted"
    CASignatureAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa-cert-v01@openssh.com,ssh-rsa
  4. 다음 명령을 실행하여 sshd 구성 파일 내용을 확인합니다.

    sudo sshd -T
  5. 다음 명령을 실행하여 sshd 서비스를 다시 시작합니다.

    sudo systemctl restart sshd  
    

관련 정보

Amazon Lightsail이란 무엇입니까?

Lightsail 인스턴스에 연결 및 관리

AWS 공식업데이트됨 5달 전