Uso de SCP para mover archivos desde una máquina virtual y hacia allí
Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles
Este artículo muestra cómo trasladar archivos desde su estación de trabajo hasta una máquina virtual de Azure, o desde una máquina virtual de Azure hasta la estación de trabajo, mediante Secure Copy (SCP). El traslado de archivos entre su estación de trabajo y una máquina virtual, de forma rápida y segura, es una parte fundamental de la administración de la infraestructura de Azure.
Para este artículo, necesita una máquina virtual implementada en Azure con SSH habilitado. También necesita un cliente SCP para el equipo local. Se basa en SSH y se incluye en el shell predeterminado de la mayoría de las instalaciones Linux y Windows (versión 10 y posteriores).
Comandos rápidos
Carga de un archivo en la máquina virtual
scp file azureuser@azurehost:directory/targetfile
Descarga de un archivo desde la máquina virtual
scp azureuser@azurehost:directory/file targetfile
Tutorial detallado
Como ejemplos, estamos trasladando un archivo de configuración de Azure a una máquina virtual y extrayendo un directorio de archivos de registro, ambos con SCP.
Autenticación del par de claves de SSH
SCP usa SSH para el nivel de transporte. SSH administra la autenticación en el host de destino y traslada el archivo en un túnel cifrado proporcionado de forma predeterminada con SSH. Para la autenticación SSH, se pueden utilizar nombres de usuario y contraseñas. Sin embargo, se recomienda la autenticación clave pública y privada de SSH como procedimiento recomendado de seguridad. Una vez que SSH ha autenticado la conexión, SCP comienza a copiar el archivo. Cuando se usan claves SSH públicas y privadas, y un archivo ~/.ssh/config
configurado adecuadamente, la conexión de SCP se puede establecer usando únicamente un nombre del servidor (o dirección IP). Si solo tiene una clave SSH, SCP la busca en el directorio ~/.ssh/
y la usa de forma predeterminada para iniciar sesión en la máquina virtual.
Para más información acerca de cómo configurar las claves públicas y privadas de SSH y ~/.ssh/config
, consulte Creación de claves SSH.
Carga de un archivo en una máquina virtual
Para el primer ejemplo, copiamos un archivo de configuración de Azure en una máquina virtual que se usa para implementar la automatización. Como este archivo contiene las credenciales de la API de Azure, que incluyen secretos, la seguridad es importante. El túnel cifrado proporcionado por SSH protege el contenido del archivo.
El comando siguiente copia el archivo .azure/config local a una máquina virtual de Azure con el FQDN de myserver.eastus.cloudapp.azure.com. Si no tiene un FQDN establecido,, también puede usar la dirección IP de la máquina virtual. El nombre de usuario administrador en la máquina virtual de Azure es azureuser. El archivo está dirigido al directorio /home/azureuser/ . Sustituya sus valores propios en este comando.
scp ~/.azure/config azureuser@myserver.eastus.cloudapp.com:/home/azureuser/config
Descarga de un directorio desde una máquina virtual
En este ejemplo, copiamos un directorio de archivos de registro de la máquina virtual hasta la estación de trabajo. Un archivo de registro puede contener datos confidenciales o secretos, o no. Sin embargo, mediante SCP garantiza que el contenido de los archivos de registro está cifrado. Un directorio de registro puede contener demasiados archivos pertinentes para copiarlos uno a uno, por lo que es preferible descargar todo el directorio en esta situación. El uso de SCP para transferir los archivos es la manera más fácil de obtener el directorio de registro y archivos hacia abajo en la estación de trabajo mientras se mantiene la seguridad.
El siguiente comando copia los archivos en el directorio /home/azureuser/logs/ en la máquina virtual de Azure al directorio /tmp local:
scp -r azureuser@myserver.eastus.cloudapp.com:/home/azureuser/logs/. /tmp/
La marca -r
indica a SCP que copie de forma recursiva los archivos y directorios desde el punto del directorio enumerado en el comando. Tenga también en cuenta que la sintaxis de línea de comandos es similar a un comando de copia de cp
.