Snelle stappen: Een openbaar-persoonlijk SSH-sleutelpaar maken en gebruiken voor Linux-VM's in Azure
Van toepassing op: ✔️ Flexibele schaalsets voor Linux-VM's ✔️
Met een SSH-sleutelpaar (Secure Shell) kunt u virtuele machines (VM's) in Azure maken die gebruikmaken van SSH-sleutels voor verificatie. In dit artikel wordt beschreven hoe u snel een openbaar en persoonlijk SSH-sleutelpaar voor Linux-VM's kunt genereren en gebruiken. U kunt deze stappen uitvoeren met de Azure Cloud Shell, een macOS- of Een Linux-host.
Voor hulp bij het oplossen van problemen met SSH raadpleegt u Problemen met SSH-verbindingen oplossen met een Azure Linux-VM die uitvalt, fouten veroorzaakt of wordt geweigerd.
Notitie
VM's die zijn gemaakt met behulp van SSH-sleutels, worden standaard geconfigureerd met wachtwoorden uitgeschakeld, waardoor het lastiger wordt om beveiligingsaanvallen te raden.
Zie Gedetailleerde stappen voor het maken van SSH-sleutelparen voor meer achtergrondinformatie en voorbeelden.
Zie SSH-sleutels gebruiken met Windows in Azure voor aanvullende manieren om SSH-sleutels te genereren en te gebruiken op een Windows-computer.
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.
Een SSH-sleutelpaar maken
Gebruik de opdracht ssh-keygen
om openbare en privé-SSH-sleutelbestanden te genereren. Deze bestanden worden standaard gemaakt in de map ~/.ssh. U kunt een andere locatie en een optioneel wachtwoord (wachtwoordzin) opgeven voor toegang tot het persoonlijke sleutelbestand. Als er op de opgegeven locatie een SSH-sleutelpaar met dezelfde naam bestaat, worden deze bestanden overschreven.
Met de volgende opdracht maakt u een SSH-sleutelpaar met RSA-versleuteling en een bitlengte van 4096:
ssh-keygen -m PEM -t rsa -b 4096
Notitie
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 de Azure CLI gebruikt om uw VIRTUELE machine te maken met de opdracht az vm create , kunt u optioneel openbare SSH- en persoonlijke sleutelbestanden genereren met behulp van de --generate-ssh-keys
optie. De sleutelbestanden worden opgeslagen in de map ~/.ssh, tenzij anders aangegeven met de --ssh-dest-key-path
optie . Als er al een ssh-sleutelpaar bestaat en de --generate-ssh-keys
optie wordt gebruikt, wordt er geen nieuw sleutelpaar gegenereerd, maar wordt het bestaande sleutelpaar gebruikt. Vervang in de volgende opdracht VMname en RGname door uw eigen waarden:
az vm create --name VMname --resource-group RGname --image UbuntuLTS --generate-ssh-keys
Een openbare SSH-sleutel opgeven bij het implementeren van een VM
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 Portal, Azure CLI, Azure Resource Manager-sjablonen of andere methoden:
- Een virtuele Linux-machine maken met Azure Portal
- Een virtuele Linux-machine maken met de Azure CLI
- Een virtuele Linux-machine maken met een Azure-sjabloon
Als u niet bekend bent met de indeling van een openbare SSH-sleutel, kunt u de openbare sleutel weergeven met de volgende cat
opdracht, waarbij ~/.ssh/id_rsa.pub
u indien nodig vervangt door het pad en de bestandsnaam van uw eigen openbare sleutelbestand:
cat ~/.ssh/id_rsa.pub
Een typische openbare sleutelwaarde ziet er als volgt uit:
ssh-rsa AAAAB3NzaC1yc2EAABADAQABAAACAQC1/KanayNr+Q7ogR5mKnGpKWRBQU7F3Jjhn7utdf7Z2iUFykaYx+MInSnT3XdnBRS8KhC0IP8ptbngIaNOWd6zM8hB6UrcRTlTpwk/SuGMw1Vb40xlEFphBkVEUgBolOoANIEXriAMvlDMZsgvnMFiQ12tD/u14cxy1WNEMAftey/vX3Fgp2vEq4zHXEliY/sFZLJUJzcRUI0MOfHXAuCjg/qyqqbIuTDFyfg8k0JTtyGFEMQhbXKcuP2yGx1uw0ice62LRzr8w0mszftXyMik1PnshRXbmE2xgINYg5xo/ra3mq2imwtOKJpfdtFoMiKhJmSNHBSkK7vFTeYgg0v2cQ2+vL38lcIFX4Oh+QCzvNF/AXoDVlQtVtSqfQxRVG79Zqio5p12gHFktlfV7reCBvVIhyxc2LlYUkrq4DHzkxNY5c9OGSHXSle9YsO3F1J5ip18f6gPq4xFmo6dVoJodZm9N0YMKCkZ4k1qJDESsJBk2ujDPmQQeMjJX3FnDXYYB182ZCGQzXfzlPDC29cWVgDZEXNHuYrOLmJTmYtLZ4WkdUhLLlt5XsdoKWqlWpbegyYtGZgeZNRtOOdN6ybOPJqmYFd2qRtb4sYPniGJDOGhx4VodXAjT09omhQJpE6wlZbRWDvKC55R2d/CSPHJscEiuudb+1SG2uA/oik/WQ== username@domainname
Als u de inhoud van het bestand met de openbare sleutel kopieert en plakt voor gebruik in de Azure Portal of een Resource Manager-sjabloon, moet u ervoor zorgen dat u geen volgspaties kopieert. Als u een openbare sleutel in macOS wilt kopiëren, kunt u het bestand met de openbare sleutel doorsluisen naar pbcopy
. Op dezelfde manier kunt u in Linux het openbare-sleutelbestand doorsluisen naar programma's zoals xclip
.
De openbare sleutel die u op uw Virtuele Linux-machine in Azure plaatst, wordt standaard opgeslagen in ~/.ssh/id_rsa.pub, tenzij u een andere locatie hebt opgegeven toen u het sleutelpaar maakte. Als u de Azure CLI 2.0 wilt gebruiken om uw virtuele machine te maken met een bestaande openbare sleutel, geeft u de waarde en eventueel de locatie van deze openbare sleutel op met behulp van de opdracht az vm create met de --ssh-key-values
optie . Vervang in de volgende opdracht myVM, myResourceGroup, UbuntuLTS, azureuser en mysshkey.pub door uw eigen waarden:
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--ssh-key-values mysshkey.pub
Als u meerdere SSH-sleutels wilt gebruiken met uw VM, kunt u deze invoeren in een door spaties gescheiden lijst, zoals deze --ssh-key-values sshkey-desktop.pub sshkey-laptop.pub
.
SSH in uw virtuele machine
Met de openbare sleutel die is geïmplementeerd op uw Azure-VM en de persoonlijke sleutel op uw lokale systeem, maakt U SSH verbinding met uw VM met behulp van het IP-adres of de DNS-naam van uw VM. Vervang in de volgende opdracht azureuser en myvm.westus.cloudapp.azure.com door de gebruikersnaam van de beheerder en de volledig gekwalificeerde domeinnaam (of het IP-adres):
ssh azureuser@myvm.westus.cloudapp.azure.com
Als u voor het eerst verbinding maakt met deze VM, wordt u gevraagd om de vingerafdruk van de host te controleren. Het is verleidelijk om de vingerafdruk te accepteren die wordt weergegeven, maar die benadering stelt u bloot aan een mogelijke persoon-in-the-middle-aanval. U moet altijd de vingerafdruk van de host valideren. U hoeft dit alleen te doen wanneer u voor het eerst verbinding maakt vanaf een client. Als u de vingerafdruk van de host wilt verkrijgen via de portal, gebruikt u de functie Opdracht uitvoeren om de opdracht ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
uit te voeren.
Als u de opdracht wilt uitvoeren met behulp van CLI, gebruikt u az vm run-command invoke
.
Als u een wachtwoordzin hebt opgegeven bij het maken van het sleutelpaar, voert u die wachtwoordzin in wanneer u hierom wordt gevraagd tijdens het aanmeldingsproces. De VM wordt toegevoegd aan het bestand ~/.ssh/known_hosts en u wordt niet gevraagd om opnieuw verbinding te maken totdat de openbare sleutel op uw Azure-VM is gewijzigd of de servernaam is verwijderd uit ~/.ssh/known_hosts.
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 behulp van het Just-In-Time-beleid voor meer informatie over het Just-In-Time-beleid.
Volgende stappen
Als u problemen ondervindt met SSH-verbindingen met Azure-VM's, raadpleegt u Problemen met SSH-verbindingen met een Azure Linux-VM oplossen.