Så här använder du SSH-nycklar med Windows på Azure

Gäller för: ✔️ Virtuella Linux-datorer ✔️ – flexibla skalningsuppsättningar

Den här artikeln är avsedd för Windows-användare som vill skapa och använda SSH-nycklar ( Secure Shell ) för att ansluta till virtuella Linux-datorer i Azure. Du kan också generera och lagra SSH-nycklar i Azure Portal som ska användas när du skapar virtuella datorer i portalen.

Information om hur du använder SSH-nycklar från en Linux- eller macOS-klient finns i snabbstegen. En mer detaljerad översikt över SSH finns i Detaljerade steg: Skapa och hantera SSH-nycklar för autentisering till en virtuell Linux-dator i Azure.

Översikt över SSH och nycklar

SSH är ett krypterat anslutningsprotokoll som tillåter säkra inloggningar över oskyddade anslutningar. SSH är standardanslutningsprotokollet för virtuella Linux-datorer i Azure. Även om själva SSH tillhandahåller en krypterad anslutning, gör användningen av lösenord med SSH fortfarande den virtuella datorn sårbar för råstyrkeattacker. Vi rekommenderar att du ansluter till en virtuell dator via SSH med hjälp av ett offentligt-privat nyckelpar, även kallat SSH-nycklar.

Det offentlig-privata nyckelparet är som låset på din ytterdörr. Låset exponeras för allmänheten, alla med rätt nyckel kan öppna dörren. Nyckeln är privat och ges bara till personer du litar på eftersom den kan användas för att låsa upp dörren.

  • Den offentliga nyckeln placeras på din virtuella Linux-dator när du skapar den virtuella datorn.

  • Den privata nyckeln finns kvar i det lokala systemet. Skydda den privata nyckeln. Dela den inte.

När du ansluter till din virtuella Linux-dator testar den virtuella datorn SSH-klienten för att kontrollera att den har rätt privat nyckel. Om klienten har den privata nyckeln beviljas den åtkomst till den virtuella datorn.

Beroende på organisationens säkerhetsprinciper kan du återanvända ett enda nyckelpar för att få åtkomst till flera virtuella Azure-datorer och -tjänster. Du behöver inte ett separat nyckelpar för varje virtuell dator.

Din offentliga nyckel kan delas med vem som helst, men bara du (eller din lokala säkerhetsinfrastruktur) ska ha åtkomst till din privata nyckel.

SSH-nyckelformat som stöds

Azure stöder för närvarande offentliga/privata RSA-nyckelpar för SSH-protokoll 2 (SSH-2) med en minsta längd på 2 048 bitar. Andra nyckelformat som ED25519 och ECDSA stöds inte.

SSH-klienter

De senaste versionerna av Windows 10 innehåller OpenSSH-klientkommandon för att skapa och använda SSH-nycklar och göra SSH-anslutningar från PowerShell eller en kommandotolk.

Du kan också använda Bash i Azure Cloud Shell för att ansluta till den virtuella datorn. Du kan använda Cloud Shell i en webbläsare, från Azure Portal eller som en terminal i Visual Studio Code med hjälp av Azure-kontotillägget.

Du kan också installera Windows-undersystem för Linux för att ansluta till den virtuella datorn via SSH och använda andra inbyggda Linux-verktyg i ett Bash-gränssnitt.

Skapa ett SSH-nyckelpar

Det enklaste sättet att skapa och hantera dina SSH-nycklar är att använda portalen för att skapa och lagra dem för återanvändning.

Du kan också skapa nyckelpar med Azure CLI med kommandot az sshkey create enligt beskrivningen i Generera och lagra SSH-nycklar.

Om du vill skapa ett SSH-nyckelpar på den lokala datorn med kommandot ssh-keygen från PowerShell eller en kommandotolk skriver du följande kommando:

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

Ange ett filnamn eller använd standardvärdet som visas inom parentes (till exempel C:\Users\username/.ssh/id_rsa). Ange en lösenfras för filen eller lämna lösenfrasen tom om du inte vill använda en lösenfras.

Skapa en virtuell dator med din nyckel

Om du vill skapa en virtuell Linux-dator som använder SSH-nycklar för autentisering anger du din offentliga SSH-nyckel när du skapar den virtuella datorn.

Med Hjälp av Azure CLI anger du sökvägen och filnamnet för den offentliga nyckeln med hjälp av az vm create och parametern --ssh-key-value .

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

Med PowerShell använder New-AzVM du och lägger till SSH-nyckeln i VM-konfigurationen med hjälp av. Ett exempel finns i Snabbstart: Skapa en virtuell Linux-dator i Azure med PowerShell.

Om du gör många distributioner med hjälp av portalen kanske du vill ladda upp din offentliga nyckel till Azure, där den enkelt kan väljas när du skapar en virtuell dator från portalen. Mer information finns i Ladda upp en SSH-nyckel.

Ansluta till din virtuella dator

Med den offentliga nyckeln distribuerad på din virtuella Azure-dator och den privata nyckeln i det lokala systemet, SSH till den virtuella datorn med ip-adressen eller DNS-namnet på den virtuella datorn. Ersätt azureuser och 10.111.12.123 i följande kommando med administratörens användarnamn, IP-adressen (eller det fullständiga domännamnet) och sökvägen till din privata nyckel:

ssh -i ~/.ssh/id_rsa azureuser@10.111.12.123

Om du aldrig har anslutit till den här virtuella datorn förut uppmanas du att verifiera värdarnas fingeravtryck. Det är frestande att acceptera fingeravtrycket som presenteras, men detta exponerar dig för en möjlig person i mittenattacken. Du bör alltid verifiera värdarnas fingeravtryck. Du behöver bara göra detta första gången du ansluter från en klient. Om du vill hämta värdens fingeravtryck via portalen använder du kommandot Kör med följande kommando: ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

Skärmbild som visar hur du använder körkommandot för att verifiera värdens fingeravtryck.

Om du vill köra kommandot med CLI använder du az vm run-command invoke kommandot .

Om du konfigurerade en lösenfras när du skapade nyckelparet anger du lösenfrasen när du uppmanas till det.

Om den virtuella datorn använder just-in-time-åtkomstprincipen måste du begära åtkomst innan du kan ansluta till den virtuella datorn. Mer information om just-in-time-principen finns i Hantera åtkomst till virtuella datorer med just-in-time-principen.

Nästa steg