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 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 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 följande nyckeltyper:
- SSH-protokoll 2 (SSH-2) RSA (Rivest, Shamir, Adleman) med en minsta längd på 2 048 bitar
- ED25519 nycklar med en fast längd på 256 bitar
Andra nyckelformat som Elliptic-curve Diffie-Hellman (ECDH) och Elliptic Curve Digital Signature Algorithm (ECDSA) stöds för närvarande inte.
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 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 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}'
.
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
Information om SSH-nycklar i Azure Portal som ska användas när du skapar virtuella datorer finns i Generera och lagra SSH-nycklar i Azure Portal.
Information om SSH-nycklar i Azure CLI som ska användas när du skapar virtuella datorer finns i Generera och lagra SSH-nycklar med Azure CLI.
Detaljerade steg, alternativ och avancerade exempel på hur du arbetar med SSH-nycklar finns i Detaljerade steg för att skapa SSH-nyckelpar.
Om du har problem med att använda SSH för att ansluta till dina virtuella Linux-datorer kan du läsa Felsöka SSH-anslutningar till en virtuell Azure Linux-dator.