다음을 통해 공유


Azure에서 Linux VM에 연결할 때의 문제에 대한 자세한 SSH 문제 해결 단계

적용 대상: ✔️ Linux VM

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

예비 단계 수행

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

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: 조직 에지 디바이스

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

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

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

인터넷에 직접 연결된 컴퓨터에 대한 SSH 연결을 설정할 수 있는 경우 조직 에지 디바이스에서 다음을 확인합니다.

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

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

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

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

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

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

마지막 가능한 문제 발생지는 Azure 가상 머신 자체입니다.

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

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

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

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

추가 리소스

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

도움을 요청하십시오.

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