Azure에서 Windows를 통해 SSH 키를 사용하는 방법

적용 대상: ✔️ Linux VM ✔️ 유연한 확장 집합

이 문서는 Azure에서 SSH(Secure Shell) 키를 생성하고 사용하여 Linux VM(가상 머신)에 연결하려는 Windows 사용자를 위한 것입니다. 포털에서 VM을 생성할 때 사용하기 위해 Azure Portal에서 SSH 키를 생성하고 저장할 수도 있습니다.

Linux 또는 macOS 클라이언트에서 SSH 키를 사용하려면 빠른 단계를 참조하세요. SSH에 대한 자세한 개요는 자세한 단계: Azure에서 Linux VM에 인증하기 위한 SSH 키 생성 및 관리를 참조하세요.

SSH 및 키에 대한 개요

SSH는 안전하지 않은 연결을 통해 안전하게 로그인할 수 있도록 암호화된 연결 프로토콜입니다. SSH는 Azure에서 호스팅되는 Linux VM에 대한 기본 연결 프로토콜입니다. SSH 자체에서 암호화된 연결을 제공하지만 SSH와 함께 암호를 사용하면 VM은 여전히 무차별 암호 대입 공격에 취약합니다. ‘SSH 키’라고도 하는 퍼블릭-프라이빗 키 쌍을 사용하여 SSH를 통해 VM에 연결하는 것이 좋습니다.

퍼블릭-프라이빗 키 쌍은 현관 자물쇠와 같습니다. 자물쇠는 퍼블릭 형태로 공개되어 있으며, 알맞은 키를 가진 사람은 누구나 문을 열 수 있습니다. 키는 프라이빗이며, 문을 여는 데 사용할 수 있기 때문에 신뢰하는 사람에게만 주어집니다.

  • ‘퍼블릭 키’는 VM을 만들 때 Linux VM에 배치됩니다.

  • 프라이빗 키는 로컬 시스템에 남아 있습니다. 이 프라이빗 키는 보호해야 하는 한편, 공유하지 마세요.

Linux VM에 연결하면 VM이 SSH 클라이언트를 테스트하여 올바른 프라이빗 키가 있는지 확인합니다. 클라이언트에 프라이빗 키가 있으면 VM에 액세스할 수 있습니다.

조직의 보안 정책에 따라 단일 키 쌍을 재사용하여 여러 Azure VM 및 서비스에 액세스할 수 있습니다. 각 VM에 대해 별도의 키 쌍이 필요하지 않습니다.

공개 키는 모두와 공유할 수 있지만, 사용자(또는 로컬 보안 인프라)만 프라이빗 키에 액세스할 수 있어야 합니다.

지원되는 SSH 키 형식

Azure에서는 현재 최소 2048비트 길이의 SSH 프로토콜 2(SSH-2) RSA퍼블릭-프라이빗 키 쌍을 지원합니다. ED25519 및 ECDSA와 같은 다른 키 형식은 지원되지 않습니다.

SSH 클라이언트

Windows 10의 최신 버전에는 SSH 키를 생성 및 사용하고 PowerShell 또는 명령 프롬프트에서 SSH 연결을 만드는 OpenSSH 클라이언트 명령이 포함되어 있습니다.

또는 Azure Cloud Shell에서 Bash를 사용하여 VM에 연결할 수도 있습니다. 웹 브라우저에서, Azure Portal에서, 또는 Azure 계정 확장을 사용하여 Visual Studio Code의 터미널로 Cloud Shell을 사용할 수 있습니다.

또한 Linux용 Windows 하위 시스템을 설치하여 SSH를 통해 VM에 연결하고 Bash 셸 내에서 다른 네이티브 Linux 도구를 사용할 수 있습니다.

SSH 키 쌍 만들기

SSH 키를 만들고 관리하는 가장 쉬운 방법은 다시 사용할 수 있도록 포털을 사용하여 만들고 저장하는 것입니다.

SSH 키 생성 및 저장에 설명된 대로 az sshkey create 명령을 사용하여 Azure CLI로 키 쌍을 만들 수도 있습니다.

PowerShell의 ssh-keygen 명령 또는 명령 프롬프트를 사용하여 로컬 컴퓨터에서 SSH 키 쌍을 만들려면 다음 명령을 입력합니다.

ssh-keygen -m PEM -t rsa -b 2048

파일 이름을 입력하거나 괄호 안에 표시된 기본값을 사용합니다(예: C:\Users\username/.ssh/id_rsa). 파일의 암호를 입력하거나 암호를 사용하지 않으려면 암호를 비워 두세요.

키를 사용하여 VM 만들기

SSH 키를 사용해 인증하는 Linux VM을 만들려면 VM을 만들 때 SSH 공개 키를 제공하세요.

Azure CLI로 az vm create--ssh-key-value 매개 변수를 사용하여 공개 키의 경로 및 파일 이름을 지정합니다.

az vm create \
   --resource-group myResourceGroup \
   --name myVM \
   --image Ubuntu2204\
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

PowerShell로 New-AzVM을 사용하여 SSH 키를 VM 구성에 추가합니다. 예를 들어 빠른 시작: PowerShell을 사용하여 Azure에서 Linux 가상 머신 만들기를 참조하세요.

포털을 사용하여 많은 배포를 수행하는 경우 포털에서 VM을 만들 때 쉽게 선택할 수 있도록 공개 키를 Azure에 업로드하는 것이 좋습니다. 자세한 내용은 SSH 키 업로드를 참조하세요.

VM에 연결

Azure VM에서 배포된 공개 키 및 로컬 시스템에서 배포된 프라이빗 키를 통해 IP 주소 또는 VM의 DNS 이름을 사용하여 VM에 SSH를 사용합니다. 다음 명령에서 azureuser10.111.12.123을 관리자 사용자 이름, IP 주소(또는 정규화된 도메인 이름), 프라이빗 키의 경로로 바꿉니다.

ssh -i ~/.ssh/id_rsa azureuser@10.111.12.123

이 VM에 연결한 적이 없는 경우 호스트 지문을 확인하라는 메시지가 표시됩니다. 제공된 지문을 허용하려고 하지만, 이는 사용자를 중간에 공격 가능성이 있는 사람에게 노출됩니다. 항상 호스트 지문을 확인해야 합니다. 클라이언트에서 처음 연결할 때만 이 작업을 수행하면 됩니다. 포털을 통해 호스트 지문을 얻으려면 다음 명령과 함께 실행 명령을 사용합니다. ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'

Screenshot showing using the Run Command to validate the host fingerprint.

CLI를 사용하여 명령을 실행하려면 az vm run-command invoke 명령을 사용합니다.

키 쌍을 만들 때 암호를 구성한 경우 메시지가 표시되면 암호를 입력합니다.

VM이 Just-In-Time 액세스 정책을 사용하는 경우에는 액세스 권한을 요청해야 VM에 연결할 수 있습니다. Just-In-Time 정책과 관련된 자세한 내용은 Just-In-Time 정책을 사용하여 가상 머신 액세스 관리를 참조하세요.

다음 단계