SSH-sleutels gebruiken met Windows in Azure

Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️

Dit artikel is bedoeld voor Windows-gebruikers die SSH-sleutels (Secure Shell) willen maken en gebruiken om verbinding te maken met virtuele Linux-machines (VM's) in Azure. U kunt ook SSH-sleutels genereren en opslaan in de Azure Portal die u wilt gebruiken bij het maken van VM's in de portal.

Als u SSH-sleutels wilt gebruiken vanuit een Linux- of macOS-client, raadpleegt u de snelle stappen. Zie Gedetailleerde stappen: SSH-sleutels maken en beheren voor verificatie met een Linux-VM in Azure voor een gedetailleerder overzicht van SSH.

Overzicht van SSH en sleutels

SSH is een versleuteld verbindingsprotocol dat beveiligde aanmeldingen via onbeveiligde verbindingen toestaat. SSH is het standaardverbindingsprotocol voor linux-VM's die worden gehost in Azure. Hoewel SSH zelf een versleutelde verbinding biedt, maakt het gebruik van wachtwoorden met SSH de VM nog steeds kwetsbaar voor beveiligingsaanvallen. U wordt aangeraden verbinding te maken met een VM via SSH met behulp van een openbaar-persoonlijk sleutelpaar, ook wel bekend als SSH-sleutels.

Het openbaar-privé sleutelpaar is als het slot op uw voordeur. Het slot wordt blootgesteld aan het publiek, iedereen met de juiste sleutel kan de deur openen. De sleutel is privé en wordt alleen gegeven aan mensen die u vertrouwt, omdat deze kan worden gebruikt om de deur te ontgrendelen.

  • De openbare sleutel wordt op uw Virtuele Linux-machine geplaatst wanneer u de virtuele machine maakt.

  • De persoonlijke sleutel blijft op uw lokale systeem staan. Houd deze privésleutel geheim. Deel het niet.

Wanneer u verbinding maakt met uw Linux-VM, test de VM de SSH-client om te controleren of deze de juiste persoonlijke sleutel heeft. Als de client de persoonlijke sleutel heeft, krijgt deze toegang tot de VM.

Afhankelijk van het beveiligingsbeleid van uw organisatie kunt u één sleutelpaar opnieuw gebruiken om toegang te krijgen tot meerdere Azure-VM's en -services. U hebt geen afzonderlijk paar sleutels nodig voor elke VM.

Uw openbare sleutel kan met iedereen worden gedeeld, maar alleen u (of uw lokale beveiligingsinfrastructuur) moet toegang hebben tot uw persoonlijke sleutel.

Ondersteunde SSH-sleutelindelingen

Azure ondersteunt momenteel SSH protocol 2 (SSH-2) RSA openbaar-persoonlijke sleutelparen met een minimale lengte van 2048 bits. Andere sleutelindelingen, zoals ED25519 en ECDSA, worden niet ondersteund.

SSH-clients

Recente versies van Windows 10 bevatten OpenSSH-clientopdrachten voor het maken en gebruiken van SSH-sleutels en het maken van SSH-verbindingen vanuit PowerShell of een opdrachtprompt.

U kunt Bash ook gebruiken in de Azure Cloud Shell om verbinding te maken met uw VM. U kunt Cloud Shell gebruiken in een webbrowser, vanuit de Azure Portal of als terminal in Visual Studio Code met behulp van de Azure-accountextensie.

U kunt ook de Windows-subsysteem voor Linux installeren om verbinding te maken met uw VM via SSH en andere systeemeigen Linux-hulpprogramma's in een Bash-shell gebruiken.

Een SSH-sleutelpaar maken

De eenvoudigste manier om uw SSH-sleutels te maken en te beheren, is door de portal te gebruiken om ze te maken en op te slaan voor hergebruik.

U kunt ook sleutelparen maken met de Azure CLI met de opdracht az sshkey create , zoals beschreven in SSH-sleutels genereren en opslaan.

Als u een SSH-sleutelpaar wilt maken op uw lokale computer met behulp van de ssh-keygen opdracht vanuit PowerShell of een opdrachtprompt, typt u de volgende opdracht:

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

Voer een bestandsnaam in of gebruik de standaardwaarde tussen haakjes (bijvoorbeeld C:\Users\username/.ssh/id_rsa). Voer een wachtwoordzin in voor het bestand of laat de wachtwoordzin leeg als u geen wachtwoordzin wilt gebruiken.

Een virtuele machine maken met behulp van uw sleutel

Als u een Linux-VM wilt maken die gebruikmaakt van SSH-sleutels voor verificatie, geeft u uw openbare SSH-sleutel op bij het maken van de VM.

Met behulp van de Azure CLI geeft u het pad en de bestandsnaam op voor de openbare sleutel met behulp van az vm create en de --ssh-key-value parameter .

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

Met PowerShell gebruikt New-AzVM u de SSH-sleutel en voegt u deze toe aan de VM-configuratie met behulp van '. Zie Quickstart: Een virtuele Linux-machine maken in Azure met PowerShell voor een voorbeeld.

Als u veel implementaties uitvoert met behulp van de portal, kunt u uw openbare sleutel uploaden naar Azure, waar deze eenvoudig kan worden geselecteerd bij het maken van een virtuele machine vanuit de portal. Zie Een SSH-sleutel uploaden voor meer informatie.

Verbinding maken met uw VM

Met de openbare sleutel die is geïmplementeerd op uw Azure-VM en de persoonlijke sleutel op uw lokale systeem, voert u SSH naar uw VM met behulp van het IP-adres of de DNS-naam van uw VM. Vervang azureuser en 10.111.12.123 in de volgende opdracht door de gebruikersnaam van de beheerder, het IP-adres (of de volledig gekwalificeerde domeinnaam) en het pad naar uw persoonlijke sleutel:

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

Als u nog nooit verbinding hebt gemaakt met deze VM, wordt u gevraagd om de vingerafdruk van de hosts te verifiëren. Het is verleidelijk om de gepresenteerde vingerafdruk te accepteren, maar dit stelt u bloot aan een mogelijke persoon in het midden van de aanval. U moet altijd de vingerafdruk van de hosts valideren. U hoeft dit alleen te doen wanneer u voor het eerst verbinding maakt vanaf een client. Als u de hostvingerafdruk wilt verkrijgen via de portal, gebruikt u de opdracht Uitvoeren met de volgende opdracht: ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

Schermopname van het gebruik van de opdracht Uitvoeren om de vingerafdruk van de host te valideren.

Als u de opdracht wilt uitvoeren met cli, gebruikt u de az vm run-command invoke opdracht .

Als u een wachtwoordzin hebt geconfigureerd tijdens het maken van het sleutelpaar, voert u de wachtwoordzin in wanneer u hierom wordt gevraagd.

Als de VM gebruikmaakt van het Just-In-Time-toegangsbeleid, moet u toegang aanvragen voordat u verbinding kunt maken met de VM. Zie Toegang tot virtuele machines beheren met het Just-In-Time-beleid voor meer informatie over het Just-In-Time-beleid.

Volgende stappen