Spostare file da e verso una macchina virtuale Linux usando SCPMove files to and from a Linux VM using SCP

Questo articolo illustra come spostare file da una workstation a una macchina virtuale Linux di Azure, o viceversa, usando Secure Copy (SCP).This article shows how to move files from your workstation up to an Azure Linux VM, or from an Azure Linux VM down to your workstation, using Secure Copy (SCP). Il trasferimento di file tra una workstation e una macchina virtuale Linux in modo rapido e sicuro è un aspetto essenziale della gestione dell'infrastruttura di Azure.Moving files between your workstation and a Linux VM, quickly and securely, is critical for managing your Azure infrastructure.

Per questo articolo è necessaria una macchina virtuale Linux distribuita in Azure tramite file di chiavi SSH pubbliche e private.For this article, you need a Linux VM deployed in Azure using SSH public and private key files. È necessario anche un client SCP per il computer locale:You also need an SCP client for your local computer. uno strumento basato su SSH e incluso nella shell Bash predefinita della maggior parte dei computer Mac e Linux e in alcune shell di Windows.It is built on top of SSH and included in the default Bash shell of most Linux and Mac computers and some Windows shells.

Comandi rapidiQuick commands

Copiare un file in una macchina virtuale LinuxCopy a file up to the Linux VM

scp file azureuser@azurehost:directory/targetfile

Copiare un file da una macchina virtuale LinuxCopy a file down from the Linux VM

scp azureuser@azurehost:directory/file targetfile

Procedura dettagliataDetailed walkthrough

A titolo di esempio, si sposterà un file di configurazione di Azure in una macchina virtuale Linux e si scaricherà la directory di un file di log, usando in entrambi i casi SCP e chiavi SSH.As examples, we move an Azure configuration file up to a Linux VM and pull down a log file directory, both using SCP and SSH keys.

Autenticazione della coppia di chiavi SSHSSH key pair authentication

SCP usa SSH per il livello di trasporto.SCP uses SSH for the transport layer. SSH gestisce l'autenticazione nell'host di destinazione e sposta il file in un tunnel crittografato fornito per impostazione predefinita con SSH.SSH handles the authentication on the destination host, and it moves the file in an encrypted tunnel provided by default with SSH. Per l'autenticazione SSH è possibile usare nomi utente e password.For SSH authentication, usernames and passwords can be used. Per una maggiore sicurezza, tuttavia, è consigliabile eseguire l'autenticazione tramite file di chiavi SSH pubbliche e private.However, SSH public and private key authentication are recommended as a security best practice. Dopo che SSH ha autenticato la connessione, SCP avvia il processo di copia del file.Once SSH has authenticated the connection, SCP then begins copying the file. Combinando un file ~/.ssh/config correttamente configurato con chiavi SSH pubbliche e private, è possibile stabilire la connessione SCP usando solo un nome di server (o un indirizzo IP).Using a properly configured ~/.ssh/config and SSH public and private keys, the SCP connection can be established by just using a server name (or IP address). Se si ha una sola chiave SSH, SCP la cerca nella directory ~/.ssh/ e, per impostazione predefinita, la usa per accedere alla macchina virtuale.If you only have one SSH key, SCP looks for it in the ~/.ssh/ directory, and uses it by default to log in to the VM.

Per altre informazioni sulla configurazione del file ~/.ssh/config e delle chiavi SSH pubbliche e private, vedere Creare chiavi SSH.For more information on configuring your ~/.ssh/config and SSH public and private keys, see Create SSH keys.

Copia sicura di un file in una macchina virtuale LinuxSCP a file to a Linux VM

Nel primo esempio si copia un file di configurazione di Azure in una macchina virtuale Linux usata per distribuire l'automazione.For the first example, we copy an Azure configuration file up to a Linux VM that is used to deploy automation. Poiché questo file contiene credenziali di API di Azure, che includono informazioni riservate, la sicurezza è particolarmente importanteBecause this file contains Azure API credentials, which include secrets, security is important. e il tunnel crittografato fornito con SSH assicura la protezione dei contenuti del file.The encrypted tunnel provided by SSH protects the contents of the file.

Il comando seguente consente di copiare il file .azure/config locale in una macchina virtuale di Azure con FQDN: myserver.eastus.cloudapp.azure.com. Il nome utente dell'amministratore nella macchina virtuale di Azure è azureuser.The following command copies the local .azure/config file to an Azure VM with FQDN myserver.eastus.cloudapp.azure.com. The admin user name on the Azure VM is azureuser. Il file è destinato ad essere inserito nella directory /home/azureuser/.The file is targeted to the /home/azureuser/ directory. Nel comando sostituire i valori predefiniti con quelli personali.Substitute your own values in this command.

scp ~/.azure/config azureuser@myserver.eastus.cloudapp.com:/home/azureuser/config

Copia sicura di una directory da una macchina virtuale LinuxSCP a directory from a Linux VM

In questo esempio si copia una directory di file di log dalla macchina virtuale Linux in una workstation.For this example, we copy a directory of log files from the Linux VM down to your workstation. Poiché è possibile che un file di log contenga dati riservati,A log file may or may not contain sensitive or secret data. con SCP si ha la certezza che i contenuti dei file di log vengano crittografati.However, using SCP ensures the contents of the log files are encrypted. L'uso di SCP per il trasferimento dei file costituisce il modo più semplice per spostare in totale sicurezza file e directory di log in una workstation.Using SCP to transfer the files is the easiest way to get the log directory and files down to your workstation while also being secure.

Il comando seguente consente di copiare i file contenuti nella directory /home/azureuser/logs/ nella directory /tmp locale della macchina virtuale di Azure:The following command copies files in the /home/azureuser/logs/ directory on the Azure VM to the local /tmp directory:

scp -r azureuser@myserver.eastus.cloudapp.com:/home/azureuser/logs/. /tmp/

Il flag dell'interfaccia della riga di comando -r indica a SCP di copiare in modo ricorsivo i file e le directory dal punto della directory specificato nel comando.The -r cli flag instructs SCP to recursively copy the files and directories from the point of the directory listed in the command. Osservare inoltre come la sintassi della riga di comando sia simile al comando di copia cp.Also notice that the command-line syntax is similar to a cp copy command.

Passaggi successiviNext steps