다음을 통해 공유


Bastion 및 Linux 네이티브 클라이언트를 사용하여 VM에 연결

이 문서는 로컬 Linux 컴퓨터의 네이티브 클라이언트를 사용하여 Azure Bastion을 통해 VNet의 VM에 연결하는 데 도움이 됩니다. 네이티브 클라이언트 기능을 사용하면 Azure CLI를 사용하여 Bastion을 통해 대상 VM에 연결할 수 있으며 로컬 SSH 키 쌍 및 Microsoft Entra ID를 포함하도록 로그인 옵션을 확장할 수 있습니다. 네이티브 클라이언트 연결에 대해 Bastion을 구성하는 방법에 대한 자세한 내용과 단계는 네이티브 클라이언트 연결에 대해 Bastion 구성을 참조하세요. 네이티브 클라이언트를 통한 연결에는 Bastion 표준 SKU 이상이 필요합니다.

네이티브 클라이언트를 통한 연결을 보여 주는 다이어그램

네이티브 클라이언트 지원을 위해 Bastion을 구성한 후에는 네이티브 Linux 클라이언트를 사용하여 VM에 연결할 수 있습니다. 연결하는 데 사용하는 방법은 연결 원본 클라이언트와 연결 대상 VM 모두에 따라 달라집니다. 다음 목록에서는 사용 가능한 몇 가지 Linux 네이티브 클라이언트 연결 방법을 보여 줍니다. 사용 가능한 클라이언트 연결/기능 조합을 보여 주는 전체 목록은 VM에 연결을 참조하세요.

  • az network bastion ssh를 사용하여 Linux VM에 연결합니다.
  • az network bastion tunnel을 사용하여 Windows VM에 연결합니다.
  • az network bastion tunnel을 사용하여 모든 VM에 연결합니다.
  • az network bastion tunnel을 사용하여 SSH를 통해 대상 VM에 파일을 업로드합니다. 대상 VM에서 로컬 클라이언트로의 파일 다운로드는 현재 이 명령에서 지원되지 않습니다.

필수 조건

시작하기 전에 다음 필수 조건이 있는지 확인합니다.

  • 최신 버전의 CLI 명령(버전 2.32 이상)이 설치되어 있습니다. az extension update --name bastion을 사용하여 Bastion용 CLI를 업데이트할 수 있습니다. CLI 설치 명령에 대한 자세한 내용은 Azure CLI 설치Azure CLI 시작을 참조하세요.
  • Azure Bastion은 가상 네트워크에 대해 이미 배포 및 구성되었습니다. 단계에 대해서는 네이티브 클라이언트 연결에 대해 Bastion 구성을 참조하세요.
  • 가상 네트워크의 가상 머신.
  • VM의 리소스 ID. 리소스 ID는 Azure Portal에서 쉽게 찾을 수 있습니다. VM의 개요 페이지로 이동하고, JSON 보기 링크를 선택하여 리소스 JSON을 엽니다. 나중에 VM에 연결할 때 사용할 수 있도록 페이지 맨 위에 있는 리소스 ID를 클립보드에 복사합니다.
  • Microsoft Entra 자격 증명을 사용하여 가상 머신에 로그인하려는 경우 다음 방법 중 하나를 사용하여 가상 머신이 설정되어 있는지 확인합니다.

역할 및 포트 확인

VM에 연결을 위해 다음과 같은 역할과 포트가 구성되어 있는지 확인합니다.

필요한 역할

  • 가상 머신에 대한 읽기 권한자 역할

  • 가상 머신의 개인 IP를 사용하는 NIC에 대한 읽기 권한자 역할

  • Azure Bastion 리소스에 대한 읽기 권한자 역할

  • Microsoft Entra 로그인 방법을 사용하는 경우 Virtual Machine 관리자 로그인 또는 Virtual Machine 사용자 로그인 역할. 다음 문서 중 하나에 설명된 프로세스를 사용하여 Microsoft Entra 로그인을 사용하도록 설정하는 경우에만 이 작업을 수행하면 됩니다.

Ports

네이티브 클라이언트 지원을 사용하여 Linux VM에 연결하려면 Linux VM에서 다음 포트가 열려 있어야 합니다.

  • 인바운드 포트: SSH(22) 또는
  • 인바운드 포트: 사용자 지정 값(Azure Bastion을 통해 VM에 연결할 때 이 사용자 지정 포트를 지정해야 함)

네이티브 클라이언트 지원을 사용하여 Windows VM에 연결하려면 Windows VM에서 다음 포트가 열려 있어야 합니다.

  • 인바운드 포트: RDP(3389) 또는
  • 인바운드 포트: 사용자 지정 값(Azure Bastion을 통해 VM에 연결할 때 이 사용자 지정 포트를 지정해야 함)

Azure Bastion으로 NSG를 가장 잘 구성하는 방법에 대해 알아보려면 NSG 액세스 및 Azure Bastion을 통하여 작업하기를 참조하세요.

Linux VM에 연결

다음 섹션의 단계는 az network bastion 명령을 사용하여 Linux 네이티브 클라이언트에서 Linux VM에 연결하는 데 도움이 됩니다. 이 확장은 az extension add --name bastion을 실행하여 설치할 수 있습니다.

이 명령을 사용하여 연결하는 경우 파일 전송이 지원되지 않습니다. 파일을 업로드하려면 대신 az network bastion tunnel 명령을 사용하여 연결합니다.

이 명령을 사용하면 다음을 수행할 수 있습니다.

  • SSH를 사용하여 Linux VM에 연결합니다.
  • Microsoft Entra ID를 통해 인증
  • 가상 네트워크 내의 동시 VM 세션에 연결합니다.

로그인하려면 다음 예제 중 하나를 사용합니다. 대상 VM에 로그인하면 컴퓨터의 네이티브 클라이언트가 VM 세션으로 열립니다.

SSH 키 쌍

SSH 키 쌍을 사용하여 VM에 로그인하려면 다음 예제를 사용합니다.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"

Microsoft Entra 인증

Microsoft Entra 로그인 지원 VM에 로그인하는 경우 다음 예제를 사용합니다. 자세한 내용은 Azure Linux VM 및 Microsoft Entra ID를 참조하세요.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"

사용자 이름/암호

로컬 사용자 이름과 암호를 사용하여 VM에 로그인하는 경우 다음 예제를 사용합니다. 그러면 대상 VM의 암호를 묻는 메시지가 표시됩니다.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "password" --username "<Username>"

Linux VM IP 주소에 대한 SSH

리소스 ID 대신 VM 개인 IP 주소에 연결할 수 있습니다. 이 형식의 연결을 사용할 때는 Microsoft Entra 인증과 사용자 지정 포트 및 프로토콜이 지원되지 않습니다. IP 기반 연결에 대한 자세한 내용은 VM에 연결 - IP 주소를 참조하세요.

az network bastion 명령을 사용하여 --target-resource-id--target-ip-address 및 지정된 IP 주소로 바꿔 VM에 연결합니다. 다음 예제에서는 인증 방법에 --ssh-key를 사용합니다.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"

VM에 연결 - tunnel 명령

az network bastion tunnel 명령은 VM에 연결할 수 있는 또 다른 방법입니다. 이 명령을 사용하면 다음을 수행할 수 있습니다.

  • Windows가 아닌 로컬 컴퓨터의 네이티브 클라이언트에서 연결합니다. (예: Linux 컴퓨터)
  • SSH 또는 RDP를 사용하여 VM에 연결합니다. (베스천 터널은 웹 서버 또는 호스트를 릴레이하지 않습니다.)
  • 원하는 네이티브 클라이언트를 사용합니다.
  • 로컬 컴퓨터에서 대상 VM에 파일을 업로드합니다. 대상 VM에서 로컬 클라이언트로의 파일 다운로드는 현재 이 명령에서 지원되지 않습니다.

제한 사항:

  • Azure Key Vault에 저장된 SSH 프라이빗 키를 사용하여 로그인하는 기능은 이 기능에서 지원되지 않습니다. SSH 키 쌍을 사용하여 Linux VM에 로그인하기 전에 프라이빗 키를 로컬 시스템의 파일에 다운로드하세요.
  • 이 기능은 Cloud Shell에서 지원되지 않습니다.

단계:

  1. az login을 사용하여 Azure 계정에 로그인합니다. 둘 이상의 구독이 있는 경우 az account list를 사용하여 확인하고, az account set --subscription "<subscription ID>"를 사용하여 베스천 리소스가 포함된 구독을 선택합니다.

  2. 대상 VM에 대해 터널을 엽니다.

    az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
    
  3. SSH 또는 RDP, 선택한 네이티브 클라이언트 및 이전 단계에서 지정한 로컬 컴퓨터 포트를 사용하여 대상 VM에 연결합니다.

    예를 들어 로컬 컴퓨터에 OpenSSH 클라이언트가 설치된 경우 다음 명령을 사용할 수 있습니다.

    ssh <username>@127.0.0.1 -p <LocalMachinePort>
    

VM IP 주소에 대한 터널

리소스 ID 대신 VM 개인 IP 주소에 연결할 수도 있습니다. 이 형식의 연결을 사용할 때는 Microsoft Entra 인증과 사용자 지정 포트 및 프로토콜이 지원되지 않습니다. IP 기반 연결에 대한 자세한 내용은 VM에 연결 - IP 주소를 참조하세요.

az network bastion tunnel 명령을 사용하여 --target-resource-id--target-ip-address 및 지정된 IP 주소로 바꿔 VM에 연결합니다.

az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"

다중 연결 터널

  1. $HOME.ssh\config에 다음 항목을 추가합니다.

    Host tunneltunnel
      HostName 127.0.0.1
      Port 2222
      User mylogin
      StrictHostKeyChecking=No
      UserKnownHostsFile=\\.\NUL
    
  2. 설정된 터널 연결에 터널 연결을 추가합니다.

    az network bastion tunnel --name mybastion --resource-group myrg --target-resource-id /subscriptions/<mysubscription>/resourceGroups/myrg/providers/Microsoft.Compute/virtualMachines/myvm --resource-port 22 --port 22
    
  3. 베스천 터널에 ssh 터널을 만듭니다.

    ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
    
  4. VS Code를 사용하여 터널 연결에 연결합니다.

다음 단계

파일 업로드 또는 다운로드