Azure에서 Linux VM에 연결하는 문제에 대한 자세한 SSH 문제 해결 단계

SSH 클라이언트가 VM의 SSH 서비스에 도달하지 못할 수 있는 여러 가지 이유가 있습니다. 보다 일반적인 SSH 문제 해결 단계를 수행한 경우 연결 문제를 추가로 해결해야 합니다. 이 문서에서는 SSH 연결이 실패하는 위치와 resolve 방법을 결정하는 자세한 문제 해결 단계를 안내합니다.

예비 단계 수행

다음 다이어그램에서는 관련된 구성 요소를 보여 줍니다.

SSH 서비스의 구성 요소를 보여 주는 다이어그램

다음 단계는 오류의 원인을 격리하고 솔루션 또는 해결 방법을 파악하는 데 도움이 됩니다.

  1. 포털에서 VM의 상태 확인합니다. Azure Portal가상 머신>VM 이름을 선택합니다.

    VM에 대한 상태 창에 실행 중이 표시됩니다. 아래로 스크롤하여 컴퓨팅, 스토리지 및 네트워크 리소스에 대한 최근 활동을 표시합니다.

  2. 설정을 선택하여 엔드포인트, IP 주소, 네트워크 보안 그룹 및 기타 설정을 검사합니다.

    VM에는 엔드포인트 또는 네트워크 보안 그룹에서 볼 수 있는 SSH 트래픽에 대해 정의된 엔드포인트가 있어야 합니다. Resource Manager 사용하여 만든 VM의 엔드포인트는 네트워크 보안 그룹에 저장됩니다. 규칙이 네트워크 보안 그룹에 적용되었으며 서브넷에서 참조되는지 확인합니다.

네트워크 연결을 확인하려면 구성된 엔드포인트를 검사 HTTP 또는 다른 서비스와 같은 다른 프로토콜을 통해 VM에 연결할 수 있는지 확인합니다.

이 단계가 끝나면 SSH 연결을 다시 시도합니다.

문제의 원인을 찾습니다.

컴퓨터의 SSH 클라이언트는 다음 영역의 문제 또는 잘못된 구성으로 인해 Azure VM의 SSH 서비스에 연결하지 못할 수 있습니다.

원본 1: SSH 클라이언트 컴퓨터

컴퓨터를 오류의 원본으로 제거하려면 다른 온-프레미스 Linux 기반 컴퓨터에 SSH 연결을 설정할 수 있는지 확인합니다.

SSH 클라이언트 컴퓨터 구성 요소를 강조 표시하는 다이어그램

연결이 실패하면 컴퓨터에서 다음 문제를 검사.

  • 인바운드 또는 아웃바운드 SSH 트래픽을 차단하는 로컬 방화벽 설정(TCP 22)
  • SSH 연결을 방지하는 로컬로 설치된 클라이언트 프록시 소프트웨어
  • SSH 연결을 방지하는 로컬로 설치된 네트워크 모니터링 소프트웨어
  • 트래픽을 모니터링하거나 특정 유형의 트래픽을 허용/허용하지 않는 다른 유형의 보안 소프트웨어

이러한 조건 중 하나가 적용되는 경우 소프트웨어를 일시적으로 사용하지 않도록 설정하고 온-프레미스 컴퓨터에 대한 SSH 연결을 시도하여 컴퓨터에서 연결이 차단되는 이유를 알아보세요. 그런 다음 네트워크 관리자와 협력하여 SSH 연결을 허용하도록 소프트웨어 설정을 수정합니다.

인증서 인증을 사용하는 경우 홈 디렉터리의 .ssh 폴더에 대한 이러한 권한이 있는지 확인합니다.

  • Chmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa(또는 프라이빗 키가 저장된 다른 파일)
  • Chmod 644 ~/.ssh/known_hosts(SSH를 통해 연결한 호스트 포함)

원본 2: 조직 에지 디바이스

오류의 원본으로 organization 에지 디바이스를 제거하려면 인터넷에 직접 연결된 컴퓨터가 Azure VM에 SSH 연결을 만들 수 있는지 확인합니다. 사이트 및 사이트 간의 VPN 또는 Azure ExpressRoute 연결을 통해 VM에 액세스하는 경우 원본 4: 네트워크 보안 그룹으로 건너뜁니다.

organization 에지 디바이스를 강조 표시하는 다이어그램

인터넷에 직접 연결된 컴퓨터가 없는 경우 자체 리소스 그룹 또는 클라우드 서비스에 새 Azure VM을 만들고 새 VM을 사용합니다. 자세한 내용은 Azure에서 Linux를 실행하는 가상 머신 만들기를 참조하세요. 테스트를 완료하면 리소스 그룹 또는 VM 및 클라우드 서비스를 삭제합니다.

인터넷에 직접 연결된 컴퓨터로 SSH 연결을 만들 수 있는 경우 다음을 위해 organization 에지 디바이스를 검사.

  • 인터넷으로 SSH 트래픽을 차단하는 내부 방화벽
  • SSH 연결을 방지하는 프록시 서버
  • SSH 연결을 방해하는 에지 네트워크의 디바이스에서 실행되는 침입 검색 또는 네트워크 모니터링 소프트웨어

네트워크 관리자와 협력하여 인터넷에서 SSH 트래픽을 허용하도록 organization 에지 디바이스의 설정을 수정합니다.

원본 3: 클라우드 서비스 엔드포인트 및 ACL

중요

클래식 VM은 2023년 9월 1일에 사용 중지됩니다.

ASM에서 IaaS 리소스를 사용하는 경우 2023년 9월 1일까지 마이그레이션을 완료하세요. Azure Resource Manager 다양한 기능 향상 기능을 활용하기 위해 더 빨리 전환하는 것이 좋습니다.

자세한 내용은 2023년 9월 1일까지 IaaS 리소스를 Azure Resource Manager 마이그레이션을 참조하세요.

참고

이 원본은 클래식 배포 모델을 사용하여 만든 VM에만 적용됩니다. Resource Manager 사용하여 만든 VM의 경우 원본 4: 네트워크 보안 그룹으로 건너뜁니다.

오류의 원본으로 클라우드 서비스 엔드포인트 및 ACL을 제거하려면 동일한 가상 네트워크의 다른 Azure VM이 SSH를 사용하여 연결할 수 있는지 확인합니다.

클라우드 서비스 엔드포인트 및 ACL을 강조 표시하는 다이어그램

동일한 가상 네트워크에 다른 VM이 없는 경우 쉽게 만들 수 있습니다. 자세한 내용은 CLI를 사용하여 Azure에서 Linux VM 만들기를 참조하세요. 테스트를 완료하면 추가 VM을 삭제합니다.

동일한 가상 네트워크에서 VM과 SSH 연결을 만들 수 있는 경우 다음 영역을 검사.

  • 대상 VM의 SSH 트래픽에 대한 엔드포인트 구성입니다. 엔드포인트의 프라이빗 TCP 포트는 VM의 SSH 서비스가 수신 대기 중인 TCP 포트와 일치해야 합니다. 기본 포트는 22입니다. 가상 머신>VM 이름>설정>엔드포인트를 선택하여 Azure Portal SSH TCP 포트 번호를 확인합니다.
  • 대상 가상 머신의 SSH 트래픽 엔드포인트에 대한 ACL입니다. ACL을 사용하면 원본 IP 주소에 따라 인터넷에서 들어오는 트래픽을 허용하거나 거부할 수 있습니다. 잘못 구성된 ACL은 엔드포인트로 들어오는 SSH 트래픽을 방지할 수 있습니다. ACL을 확인하여 프록시 또는 다른 에지 서버의 공용 IP 주소에서 들어오는 트래픽이 허용되는지 확인합니다. 자세한 내용은 ACL(네트워크 액세스 제어 목록) 정보를 참조하세요.

문제의 원본으로 엔드포인트를 제거하려면 현재 엔드포인트를 제거하고, 다른 엔드포인트를 만들고, SSH 이름(퍼블릭 및 프라이빗 포트 번호의 경우 TCP 포트 22)을 지정합니다. 자세한 내용은 Azure에서 가상 머신에 엔드포인트 설정을 참조하세요.

원본 4: 네트워크 보안 그룹

네트워크 보안 그룹을 사용하면 허용되는 인바운드 및 아웃바운드 트래픽을 보다 세부적으로 제어할 수 있습니다. Azure 가상 네트워크의 서브넷 및 클라우드 서비스에 걸쳐 있는 규칙을 만들 수 있습니다. 네트워크 보안 그룹 규칙을 확인하여 인터넷으로의 SSH 트래픽이 허용되는지 확인합니다. 자세한 내용은 네트워크 보안 그룹 정보를 참조하세요.

IP 확인을 사용하여 NSG 구성의 유효성을 검사할 수도 있습니다. 자세한 내용은 Azure 네트워크 모니터링 개요를 참조하세요.

원본 5: Linux 기반 Azure 가상 머신

가능한 문제의 마지막 원본은 Azure 가상 머신 자체입니다.

Linux 기반 Azure 가상 머신을 강조 표시하는 다이어그램

아직 수행하지 않은 경우 지침에 따라 Linux 기반 가상 머신 암호를 다시 설정합니다.

컴퓨터에서 다시 연결해 보세요. 그래도 실패하는 경우 다음과 같은 몇 가지 가능한 문제가 있습니다.

  • SSH 서비스가 대상 가상 머신에서 실행되고 있지 않습니다.
  • SSH 서비스가 TCP 포트 22에서 수신 대기하지 않습니다. 테스트하려면 로컬 컴퓨터에 텔넷 클라이언트를 설치하고 "telnet cloudServiceName.cloudapp.net 22"를 실행합니다. 이 단계에서는 가상 머신이 SSH 엔드포인트에 대한 인바운드 및 아웃바운드 통신을 허용하는지 여부를 결정합니다.
  • 대상 가상 머신의 로컬 방화벽에는 인바운드 또는 아웃바운드 SSH 트래픽을 방지하는 규칙이 있습니다.
  • Azure 가상 머신에서 실행되는 침입 검색 또는 네트워크 모니터링 소프트웨어는 SSH 연결을 방지합니다.

추가 리소스

애플리케이션 액세스 문제 해결에 대한 자세한 내용은 Azure 가상 머신에서 실행되는 애플리케이션에 대한 액세스 문제 해결을 참조하세요.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.