Azioni rapide: Creare e usare una coppia di chiavi SSH pubblica e privata per le macchine virtuali Linux in AzureQuick steps: Create and use an SSH public-private key pair for Linux VMs in Azure

Con una coppia di chiavi SSH (Secure Shell) è possibile creare macchine virtuali in Azure che per impostazione predefinita usano le chiavi SSH per l'autenticazione, eliminando la necessità di password per l'accesso.With a secure shell (SSH) key pair, you can create virtual machines (VMs) in Azure that use SSH keys for authentication, eliminating the need for passwords to log in. Questo articolo illustra come generare rapidamente e usare una coppia di file di chiavi pubblica e privata per le macchine virtuali Linux.This article shows you how to quickly generate and use an SSH public-private key file pair for Linux VMs. È possibile completare questa procedura con Azure Cloud Shell, un host Linux o macOS, il sottosistema Windows per Linux, e altri strumenti che supportano OpenSSH.You can complete these steps with the Azure Cloud Shell, a macOS or Linux host, the Windows Subsystem for Linux, and other tools that support OpenSSH.

Per altri scenari ed esempi, vedere la procedura dettagliata per creare coppie di chiavi SSH.For more background and examples, see detailed steps to create SSH key pairs.

Per altri modi in cui generare e usare le chiavi SSH in un computer Windows, vedere Come usare le chiavi SSH con Windows in Azure.For additional ways to generate and use SSH keys on a Windows computer, see How to use SSH keys with Windows on Azure.

Formati di chiave SSH supportatiSupported SSH key formats

Attualmente Azure supporta il protocollo SSH 2 (SSH-2) e le coppie di chiavi pubblica e privata basate su RSA con una lunghezza minima di 2.048 bit.Azure currently supports SSH protocol 2 (SSH-2) RSA public-private key pairs with a minimum length of 2048 bits. Altri formati di chiave, ad esempio ED25519 ed ECDSA, non sono supportati.Other key formats such as ED25519 and ECDSA are not supported.

Creare una coppia di chiavi SSHCreate an SSH key pair

Usare il comando ssh-keygen per creare file di chiavi SSH pubblica e privata, che per impostazione predefinita si trovano nella directory ~/.ssh.Use the ssh-keygen command to generate SSH public and private key files that are by default created in the ~/.ssh directory. È possibile specificare un percorso diverso e una passphrase aggiuntiva, ovvero una password per accedere al file di chiave privata, quando richiesto.You can specify a different location and an additional passphrase (a password to access the private key file) when prompted. Se nel percorso corrente è presente una coppia di chiavi SSH, questi file vengono sovrascritti.If an SSH key pair exists in the current location, those files are overwritten.

ssh-keygen -t rsa -b 2048

Se si usa l'interfaccia della riga di comando di Azure 2.0 per creare la VM, facoltativamente è possibile creare i file della chiave SSH pubblica e privata eseguendo il comando az vm create con l'opzione --generate-ssh-keys.If you use the Azure CLI 2.0 to create your VM, you can optionally generate SSH public and private key files by running the az vm create command with the --generate-ssh-keys option. Le chiavi vengono archiviate nella directory ~/.ssh.The keys are stored in the ~/.ssh directory. Si noti che questa opzione di comando non implica la sovrascrittura delle chiavi se sono già presenti in tale percorso.Note that this command option does not overwrite keys if they already exist in that location.

Fornire la chiave SSH pubblica quando si distribuisce una VMProvide SSH public key when deploying a VM

Per creare una VM Linux che utilizza le chiavi SSH per l'autenticazione, specificare la chiave SSH pubblica quando si crea la macchina virtuale tramite il portale di Azure, l'interfaccia della riga di comando, modelli di Resource Manager o altri metodi:To create a Linux VM that uses SSH keys for authentication, specify your SSH public key when creating the VM using the Azure portal, CLI, Resource Manager templates, or other methods:

Se non si ha familiarità con il formato della chiave SSH pubblica, è possibile visualizzare la chiave pubblica eseguendo cat come segue, sostituendo ~/.ssh/id_rsa.pub con il proprio percorso del file della chiave pubblica:If you're not familiar with the format of an SSH public key, you can see your public key by running cat as follows, replacing ~/.ssh/id_rsa.pub with your own public key file location:

cat ~/.ssh/id_rsa.pub

Se si copiano e si incollano i contenuti del file di chiave pubblica da usare nel portale di Azure o in un modello di Resource Manager, verificare di non copiare spazi aggiuntivi.If you copy and paste the contents of the public key file to use in the Azure portal or a Resource Manager template, make sure you don't copy any additional whitespace. Ad esempio, se si usa macOS, è possibile eseguire il pipe del file della chiave pubblica, che per impostazione predefinita è ~/.ssh/id_rsa.pub, a pbcopy per copiare i contenuti. Anche altri programmi Linux eseguono questa operazione, ad esempio xclip.For example, if you use macOS, you can pipe the public key file (by default, ~/.ssh/id_rsa.pub) to pbcopy to copy the contents (there are other Linux programs that do the same thing, such as xclip).

Per impostazione predefinita, la chiave pubblica che si inserisce nella VM Linux in Azure viene archiviata in ~/.ssh/id_rsa.pub, a meno che il percorso non sia stato modificato in fase di creazione.The public key that you place on your Linux VM in Azure is by default stored in ~/.ssh/id_rsa.pub, unless you changed the location when you created the keys. Se si usa l'interfaccia della riga di comando di Azure 2.0 per creare la macchina virtuale con una chiave pubblica esistente, specificare il valore o il percorso della chiave pubblica eseguendo il comando az vm create con l'opzione --ssh-key-value.If you use the Azure CLI 2.0 to create your VM with an existing public key, specify the value or location of this public key by running the az vm create command with the --ssh-key-value option.

Stabilire una connessione SSH alla VMSSH to your VM

Con la chiave pubblica distribuita nella VM di Azure e la chiave privata nel sistema locale, stabilire una connessione SSH alla VM usando l'indirizzo IP o il nome DNS della VM.With the public key deployed on your Azure VM, and the private key on your local system, SSH to your VM using the IP address or DNS name of your VM. Sostituire azureuser e myvm.westus.cloudapp.azure.com nel comando seguente con il nome utente dell'amministratore e il nome di dominio completo (o indirizzo IP):Replace azureuser and myvm.westus.cloudapp.azure.com in the following command with the administrator user name and the fully qualified domain name (or IP address):

ssh azureuser@myvm.westus.cloudapp.azure.com

Se è stata specificata una passphrase durante la creazione della coppia di chiavi, immettere la passphrase quando viene richiesta durante il processo di accesso.If you provided a passphrase when you created your key pair, enter the passphrase when prompted during the login process. Il server viene aggiunto alla cartella ~/.ssh/known_hosts e non verrà chiesto di connettersi di nuovo finché la chiave pubblica nella VM di Azure non viene modificata o il nome server viene rimosso da ~/.ssh/known_hosts.(The server is added to your ~/.ssh/known_hosts folder, and you won't be asked to connect again until the public key on your Azure VM changes or the server name is removed from ~/.ssh/known_hosts.)

Per impostazione predefinita, le VM create con le chiavi SSH vengono configurate con le password disabilitate, per rendere i tentativi di attacco basati su forza bruta per scoprire le password molto più costosi e quindi difficili.VMs created using SSH keys are by default configured with passwords disabled, to make brute-forced guessing attempts vastly more expensive and therefore difficult.

Passaggi successiviNext steps

Questo articolo ha illustrato la creazione di una coppia di chiavi SSH semplice per un utilizzo rapido.This article described creating a simple SSH key pair for quick usage.