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}'
.
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
Zie SSH-sleutels genereren en opslaan in de Azure Portal voor meer informatie over SSH-sleutels in de Azure Portal die u kunt gebruiken bij het maken van VM's.
Zie SSH-sleutels genereren en opslaan met de Azure CLI voor informatie over SSH-sleutels in de Azure CLI die u kunt gebruiken bij het maken van virtuele machines.
Zie Gedetailleerde stappen voor het maken van SSH-sleutelparen voor gedetailleerde stappen, opties en geavanceerde voorbeelden van het werken met SSH-sleutels.
Als u problemen ondervindt met het gebruik van SSH om verbinding te maken met uw Linux-VM's, raadpleegt u Problemen met SSH-verbindingen met een Azure Linux-VM oplossen.