Dela via


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

Gäller för: ✔️ Flexibla skalningsuppsättningar för virtuella Linux-datorer ✔️

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-portalen 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.

Kommentar

ED25519 SSH-nyckelstöd för virtuella Linux-datorer finns nu i förhandsversion i alla regioner, inklusive nationella moln.

Ö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 som finns i Azure. Även om SSH själv ger en krypterad anslutning, gör användning 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å den virtuella Linux-datorn när du skapar den virtuella datorn.

  • Den privata nyckeln finns kvar i ditt lokala system. Skydda den privata nyckeln. Dela den inte.

När du ansluter till den virtuella Linux-datorn testar den virtuella datorn SSH-klienten för att se till 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 SSH Protocol 2 (SSH-2) RSA offentlig-privata nyckelpar med en minsta längd på 2 048 bitar. Stöd för ED25519 nycklar finns i förhandsversion. Andra nyckelformat som ECDH och ECDSA stöds inte.

Kommentar

Under förhandsversionen kan ED25519 nycklar endast användas med virtuella Linux-datorer.

SSH-klienter

De senaste versionerna av Windows 10 innehåller OpenSSH-klientkommandon för att skapa och använda SSH-nycklar och skapa 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-portalen eller som en terminal i Visual Studio Code med hjälp av Azure-kontotillägget.

Du kan också installera Windows podsistem za 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 hjälp av ssh-keygen kommandot från PowerShell eller en kommandotolk använder 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 hjälp av 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 och lägger du 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 ditt lokala system, 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örsanvändarnamnet, IP-adressen (eller det fullständigt kvalificerade 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 innan blir du ombedd 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ärdfingret via portalen använder du körkommandot 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 att göra 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