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.
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 de volgende sleuteltypen:
- SSH-protocol 2 (SSH-2) RSA (Klinknagel, Shamir, Adleman) met een minimale lengte van 2048 bits
- ED25519 sleutels met een vaste lengte van 256 bits
Andere belangrijke indelingen, zoals Elliptic-curve Diffie–Hellman (ECDH) en Elliptic Curve Digital Signature Algorithm (ECDSA) worden momenteel 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 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}'
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
Zie SSH-sleutels genereren en opslaan in Azure Portal voor informatie over SSH-sleutels 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 die u kunt gebruiken bij het maken van VM's.
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 Virtuele Linux-machine in Azure oplossen.