SSH-sleutels gebruiken met Windows in Azure

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

Zie de snelle stappen als u SSH-sleutels wilt gebruiken vanuit een Linux- of macOS-client. Zie Gedetailleerde stappen: SSH-sleutels maken en beheren voor verificatie bij een linux-VM in Azurevoor een gedetailleerder overzicht van SSH.

Overzicht van SSH en sleutels

SSH is een versleuteld verbindingsprotocol waarmee beveiligde aanmeldingen via niet-beveiligde verbindingen mogelijk zijn. 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 brute-force-aanvallen. Het is raadzaam om via SSH verbinding te maken met een VM met behulp van een openbaar-persoonlijk sleutelpaar, ook wel bekend als SSH-sleutels.

Het openbare-persoonlijke sleutelpaar is hetzelfde als de vergrendeling op uw front door. De vergrendeling wordt blootgesteld aan het openbare, iedereen met de juiste sleutel kan de deur openen. De sleutel is persoonlijk en wordt alleen gegeven aan personen 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 VM maakt.

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

Wanneer u verbinding maakt met uw Linux-VM, test de VM de SSH-client om er zeker van te zijn dat 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 voor toegang tot meerdere virtuele 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 indelingen van SSH-sleutels

Azure biedt momenteel ondersteuning voor open bare en persoonlijke RSA-sleutel paren van het SSH-protocol 2 (SSH-2) met een minimum lengte van 2048 bits. Andere sleutel indelingen, 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. Dit is de eenvoudigste manier om vanaf een Windows-computer een SSH-verbinding te maken met uw Linux-VM.

U kunt Bash ook gebruiken in de Azure Cloud Shell verbinding te maken met uw VM. U kunt deze Cloud Shell in een webbrowsergebruiken vanuit de Azure Portalof als een terminal in Visual Studio Code met behulp van de Azure-accountextensie.

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

Een SSH-sleutelpaar maken

Maak een SSH-sleutelpaar met behulp van de ssh-keygen opdracht . Voer een bestandsnaam in of gebruik de standaardwaarde tussen haakjes (bijvoorbeeld C:\Users\username/.ssh/id_rsa ). Voer een wachtwoordzin voor het bestand in of laat de wachtwoordzin leeg als u geen wachtwoordzin wilt gebruiken.

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

Een VM 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 virtueleM.

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

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

Gebruik met PowerShell de New-AzVM SSH-sleutel en voeg deze toe aan de VM-configuratie met behulp van . Zie Quickstart: Create a Linux virtual machine in Azure with PowerShell (Snelstart: Een virtuele Linux-machine maken in Azure met PowerShell) voor een voorbeeld.

Als u een groot aantal implementaties via de portal wilt uitvoeren, kunt u uw openbare sleutel uploaden naar Azure, waar deze eenvoudig kan worden geselecteerd bij het maken van een VM vanuit de portal. Zie Upload an SSH key (Een SSH-sleutel uploaden) voor meer informatie.

Verbinding maken met uw VM

Nu de openbare sleutel is geïmplementeerd op uw Azure-VM en de persoonlijke sleutel op uw lokale systeem, gebruikt u het IP-adres of de DNS-naam van uw VM om via SSH naar uw VM te gaan. 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 een wachtwoordzin hebt geconfigureerd toen u uw sleutelpaar maakte, voert u de wachtwoordzin in wanneer u hier om wordt gevraagd.

Als de VM gebruik maakt 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

  • Zie SSH-sleutels genereren en opslaan in de Azure Portal voor gebruik bij het maken van VM's in de portal voor meer informatie over SSH-sleutels in de Azure Portal.

  • Zie Gedetailleerde stappen voor het maken van SSH-sleutelparen voor gedetailleerde stappen, opties en geavanceerde voorbeelden van het werken met SSH-sleutels.

  • U kunt PowerShell ook gebruiken in Azure Cloud Shell SSH-sleutels te genereren en SSH-verbindingen te maken met Linux-VM's. Zie de Snelstart voor PowerShell.

  • Als u problemen hebt met het gebruik van SSH om verbinding te maken met uw Linux-VM's, zie Troubleshoot SSH connections to an Azure Linux VM (Problemenmet SSH-verbindingen met een Azure Linux-VM oplossen).