Share via


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 Azure Portal om te gebruiken bij het maken van VM's in de portal.

Als u SSH-sleutels van een Linux- of macOS-client wilt gebruiken, raadpleegt u de snelle stappen. Zie gedetailleerde stappen voor een gedetailleerder overzicht van SSH: SSH-sleutels maken en beheren voor verificatie bij een Virtuele Linux-machine in Azure.

Notitie

ED25519 SSH-sleutelondersteuning voor Linux-VM's is nu in preview in alle regio's, inclusief onafhankelijke clouds.

Overzicht van SSH en sleutels

SSH is een versleuteld verbindingsprotocol waarmee beveiligde aanmeldingen via onbeveiligde verbindingen mogelijk zijn. SSH is het standaardverbindingsprotocol voor Linux-VM's die worden gehost in Azure. Hoewel SSH zelf een versleutelde verbinding biedt, blijft het gebruik van wachtwoorden met SSH de VM kwetsbaar voor beveiligingsaanvallen. U wordt aangeraden verbinding te maken met een virtuele machine via SSH met behulp van een openbaar-persoonlijk sleutelpaar, ook wel SSH-sleutels genoemd.

Het openbaar-persoonlijke sleutelpaar is net 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 alleen gegeven aan mensen die u vertrouwt, omdat deze kan worden gebruikt om de deur te ontgrendelen.

  • De openbare sleutel wordt op uw Linux-VM 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 ervoor te zorgen dat deze de juiste persoonlijke sleutel heeft. Als de client de persoonlijke sleutel heeft, krijgt deze toegang tot de virtuele machine.

Afhankelijk van het beveiligingsbeleid van uw organisatie kunt u één sleutelpaar opnieuw gebruiken voor toegang tot meerdere Virtuele Azure-machines en -services. U hebt geen afzonderlijk paar sleutels nodig voor elke virtuele machine.

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-sleutelparen met een minimale lengte van 2048 bits. Ondersteuning voor ED25519 Sleutels is in preview, andere sleutelindelingen, zoals ECDH en ECDSA, worden niet ondersteund.

Notitie

Tijdens de preview kunnen ED25519 sleutels alleen worden gebruikt met Linux-VM's.

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 Azure Cloud Shell om verbinding te maken met uw virtuele machine. U kunt Cloud Shell gebruiken in een webbrowser, vanuit Azure Portal of als terminal in Visual Studio Code met behulp van de Azure-accountextensie.

U kunt de Windows-subsysteem voor Linux ook installeren om verbinding te maken met uw virtuele machine 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 Genereren en opslaan van SSH-sleutels.

Als u een SSH-sleutelpaar wilt maken op uw lokale computer met behulp van de ssh-keygen opdracht uit PowerShell of een opdrachtprompt, gebruikt 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 virtuele machine.

Met behulp van de Azure CLI geeft u het pad en de bestandsnaam voor de openbare sleutel op met behulp van az vm create 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

Gebruik en voeg met PowerShell New-AzVM de SSH-sleutel 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, wilt u mogelijk uw openbare sleutel uploaden naar Azure, waar u deze eenvoudig kunt selecteren bij het maken van een virtuele machine vanuit de portal. Zie Een SSH-sleutel uploaden voor meer informatie.

Verbinding maken met uw VM

Wanneer de openbare sleutel is geïmplementeerd op uw Azure-VM en de persoonlijke sleutel op uw lokale systeem, wordt SSH naar uw VM verzonden met behulp van het IP-adres of de DNS-naam van uw VIRTUELE machine. 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 VIRTUELE machine voordat u wordt 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 de middelste 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 vingerafdruk van de host via de portal wilt ophalen, 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 toen u het sleutelpaar maakte, voert u de wachtwoordzin in wanneer u hierom wordt gevraagd.

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

Volgende stappen