El protocolo de copia segura (SCP) es un comando que facilita transferencias de archivos eficientes y seguras entre dos sistemas a través de una red. Utiliza el Protocolo de Shell
Seguro (SSH) para autenticar los sistemas y cifrar los datos.
SCP agiliza la transferencia de datos entre sistemas Linux, ya que los administradores no necesitan iniciar sesión en ambos servidores. Además, es más seguro que otros métodos como el Protocolo de Transferencia de Archivos (FTP), comúnmente utilizado para administrar un sistema remoto.
En este artículo, aprenderás a utilizar el comando SCP en un host remoto, como un servidor virtual privado (VPS). Desglosaremos la sintaxis del comando y proporcionaremos ejemplos de SCP para ayudarte a comprender cómo funciona.
Sintaxis del Comando SCP
Cómo Copiar Archivos Usando el Comando SCP
Usar el Comando SCP con HolyHosting VPS
Copiar Desde un Servidor Local a un Host Remoto
Transferir un Archivo Remoto a una Máquina Local
Mover un Archivo de Forma Segura Entre Hosts Remotos
Cómo Utilizar el Comando SCP Con Opciones
Preguntas Frecuentes Sobre el Uso del Comando SCP para Transferir Archivos
¿Cómo Ejecuto SCP en Windows?
¿Puedo Ingresar la Contraseña en el Comando SCP?
¿Cómo Detengo o Pauso SCP?
Sintaxis del Comando SCP
La sintaxis básica del SCP para transferir un archivo entre dos servidores remotos diferentes es la siguiente:
```
scp [opciones] [nombre de usuario fuente@IP]:/[directorio y nombre de archivo] [nombre de usuario destino@IP]:/[directorio de destino]
```
Desglose del comando:
- `[opciones]` – modificadores para alterar el comportamiento del comando SCP.
- `[nombre de usuario fuente@IP]` – nombre de usuario e dirección IP del sistema fuente.
- `:/` – separador de dirección del sistema y ruta del directorio.
- `[directorio y nombre de archivo]` – ubicación y nombre del archivo.
- `[nombre de usuario destino@IP]` – cuenta de usuario e dirección IP del sistema de destino.
- `[directorio de destino]` – directorio de destino de los archivos transferidos.
Ejemplo de un comando SCP para copiar archivos entre dos sistemas remotos:
```
scp root@162.168.1.1:/media/scp.png holyhosting@162.168.1.2:/escritorio/destino
```
Asegúrate de habilitar el acceso de root en la máquina remota. Si utilizas otra cuenta, verifica si tiene permisos de escritura en la carpeta de destino. De lo contrario, solo podrás transferir archivos al directorio de inicio del usuario.
Si estás copiando desde o hacia un host local, omite la dirección IP y la ruta como /escritorio/nombre_carpeta. El comando se verá así:
```
scp scp.png holyhosting@162.168.1.2:/escritorio/destino
```
Cómo Copiar Archivos Usando el Comando SCP
Las siguientes secciones explorarán algunos ejemplos prácticos de uso de SCP para transferir archivos entre diferentes sistemas.
¡Advertencia! Ten cuidado al usar comandos SCP, ya que puedes sobrescribir archivos y directorios con el mismo nombre.
Usar el Comando SCP con HolyHosting VPS
Debes acceder a la shell de bash de la máquina fuente para ejecutar el comando SCP. Para un servidor remoto como un VPS, conéctate a través de SSH utilizando PuTTY o la Terminal de tu computadora.
Si utilizas HolyHosting's VPS, utiliza la función de terminal del navegador en el menú de descripción general del servidor en el Área de Miembros. Te permite conectar y ejecutar comandos en un servidor remoto directamente a través de un navegador web, lo que hace la tarea más eficiente.
Además, nuestra terminal del navegador utiliza el protocolo VNC para acceder al servidor remoto, permitiéndote ejecutar comandos SSH como SCP incluso cuando el sistema de destino cierra el puerto de conexión.
HolyHosting también ofrece un Asistente de Inteligencia Artificial para VPS, accesible desde el menú de descripción general del servidor. Esta función te permite generar comandos
SCP listos para usar basados en tus necesidades, mejorando la eficiencia de la gestión.
Por ejemplo, puedes ingresar "Generar el comando SCP para transferir el archivo config.yaml desde la ruta /web_app/configuration de mi servidor actual al directorio remoto /live_app/config en mi VPS. El nombre de usuario del servidor de destino es root y su dirección IP es 168.162.1.2".
El Asistente de IA generará el comando completo, que puedes copiar y pegar en la terminal del navegador, como se muestra a continuación:
[Imagen: Captura de pantalla del Asistente de IA de HolyHosting generando un comando SCP basado en la solicitud del usuario]
Copiar Desde un Servidor Local a un Host Remoto
Usar el comando SCP para copiar archivos desde un sistema local a un host remoto, como un VPS, ayuda a agilizar los procesos de implementación de aplicaciones web. Te permite enviar rápidamente los archivos actualizados desde un entorno de desarrollo local al servidor en vivo.
Por ejemplo, copiaremos el archivo local scp.zip a un servidor remoto con el usuario root. Para hacerlo, especifica el nombre de usuario remoto y la dirección IP:
```
scp /users/HolyHosting/desktop/scp.zip root@162.168.1.2:/escritura/articulo
```
La terminal te pedirá ingresar la contraseña del usuario remoto si no has configurado un par de claves SSH. También mostrará una barra de progreso, como se muestra a continuación:
[Imagen: Captura de pantalla de la terminal que muestra un prompt de confirmación de contraseña y una barra de progreso SCP]
El comando SCP utiliza el puerto SSH predeterminado 22 para copiar archivos de manera segura. Sin embargo, los administradores del servidor pueden configurar otro puerto de escucha para evitar el acceso no autorizado. En este caso, agrega la opción -P para habilitar el puerto personalizado de SCP:
```
scp -P 2322 /users/HolyHosting/desktop/scp.zip root@162.168.1.2:/escritura/articulo
```
Para cambiar el nombre del archivo transmitido, especifica el nuevo valor en tu directorio de destino. Aquí tienes un ejemplo del comando SCP que cambia el nombre de scp.zip a howtoscp.zip:
```
scp /users/HolyHosting/desktop/scp.zip root@162.168.1.2:/escritura/articulo/howtoscp.zip
```
Ad
emás, el comando SCP te permite copiar directorios de manera recursiva, lo que te permite transferir varios archivos dentro de una carpeta simultáneamente. Para hacerlo, utiliza scp -r y especifica la carpeta que deseas transferir:
```
scp -r /users/HolyHosting/desktop root@162.168.1.2:/escritura/articulo
```
El ejemplo anterior copiará el contenido de la carpeta desktop al directorio remoto /escritura/articulo, incluyendo las subcarpetas. Alternativamente, copia varios archivos utilizando sus nombres como se muestra a continuación:
```
scp file1.txt file2.txt file3.txt root@162.168.1.2:/escritura/articulo
```
Consejo Profesional
Para encontrar la ruta completa de un directorio, navega hasta el directorio apropiado y utiliza el comando pwd.
Transferir un Archivo Remoto a una Máquina Local
Para iniciar la transferencia de datos SCP desde sistemas remotos hacia sistemas locales, intercambia la ubicación de origen y destino en la sintaxis. Mejora la eficiencia del desarrollo de aplicaciones, ya que puedes descargar fácilmente y trabajar en el archivo del proyecto sin conexión.
Por ejemplo, utiliza el siguiente comando para descargar el archivo scp.zip desde un VPS remoto a una máquina local:
```
scp root@162.168.1.2:/escritura/articulos/SCP.zip Users/HolyHosting/Desktop
```
Al ejecutar este comando, se mostrará la salida de inicio de sesión de SSH, que requerirá la contraseña del usuario. Si deshabilitas la autenticación utilizando privilegios sudo en el servidor remoto y habilitas la autenticación de clave pública, el prompt no aparecerá.
Mover un Archivo de Forma Segura Entre Hosts Remotos
Además de transferir hacia o desde el servidor actual, utiliza SCP para mover archivos entre dos máquinas Linux remotas. Para hacerlo, ejecuta el comando en tu computadora local con sus direcciones como origen y destino.
Si tienes varios proyectos alojados en diferentes máquinas remotas, esto ayuda a mejorar la eficiencia. En lugar de iniciar sesión en múltiples sistemas individualmente, puedes transferir archivos entre ellos directamente desde tu computadora actual.
Por ejemplo, ejecuta el siguiente comando para transferir el archivo remoto scp.zip desde root@162.168.1.2 a holy@162.168.1.1:
```
scp root@162.168.1.2:/escritura/articulo/scp.zip holy@162.168.1.1:/publicacion
```
Copiar archivos entre dos servidores remotos requiere las contraseñas SSH de ambas cuentas.
Por defecto, el comando SCP transmite los datos directamente desde la primera computadora remota a la segunda. Si deseas redirigir la operación a través de tu sistema local actual, agrega la opción -3 como se muestra en el siguiente comando:
```
scp -3 root@162.168.1.2:/escritura/articulo/scp.zip holy@162.168.1.1:/publicacion
```
Utiliza esta opción si encuentras un error de red durante la transferencia. Esto suele ocurrir cuando el sistema fuente no puede acceder al sistema de destino para copiar datos debido a la falta de conexión directa.
Redirigir el comando SCP hacia el host local hace que el servidor de destino reciba archivos desde tu computadora en lugar del sistema fuente. Sin embargo, este proceso llevará más tiempo y omitirá información como la barra de progreso.
Cómo Utilizar el Comando SCP Con Opciones
Existen varias opciones de comando SCP, que son parámetros para modificar el comportamiento de la transferencia de datos. Son útiles para usuarios con conocimientos técnicos avanzados que desean copiar el archivo de una manera específica según sus necesidades y requisitos de seguridad.
Las opciones pueden presentarse en forma de un solo carácter (-o) y su equivalente descriptivo (–option). Ambos funcionan de manera similar, pero algunas utilidades de comandos pueden no proporcionar la versión corta.
A diferencia de otros comandos de Linux, no puedes usar el parámetro –help para mostrar el manual de SCP y las opciones aceptables. En su lugar, puedes hacerlo ejecutándolo sin parámetros:
```
scp
```
Una opción de comando SCP comúnmente utilizada es -q, que indica al sistema copiar el archivo en modo silencioso. Desactiva la salida de la barra de progreso, advertencias y mensajes de diagnóstico. Aquí tienes un ejemplo de comando:
```
scp -q /users/HolyHosting/desktop/scp.zip root@162.168.1.2
```
Utiliza el parámetro -v para habilitar la salida detallada. Muestra mensajes detallados de depuración sobre el proceso de copia para facilitar la solución de problemas. Así es como se ve el comando:
```
scp -v /users/HolyHosting/desktop/scp.zip root@162.168.1.2
```
Las opciones -4 y -6 determinan la versión del protocolo de internet utilizada para la transmisión de datos: IPv4 o IPv6. Cuando las uses, cambia las direcciones de los lugares remotos en consecuencia, como en el siguiente ejemplo:
```
scp -4 root@162.168.1.2:/users/HolyHosting/desktop/scp.zip
```
Utiliza la opción -p para conservar los datos del archivo fuente, como el modo, la modificación y los tiempos de acceso. Ten en cuenta que difiere de la opción en mayúsculas -P para cambiar el puerto de transferencia. Aquí tienes la sintaxis:
```
scp -p /users/HolyHosting/desktop/scp.zip root@162.168.1.2
```
¡Importante! Ten cuidado al utilizar las opciones del comando SCP, ya que distinguen entre mayúsculas y minúsculas.
La opción -C comprime los archivos o directorios copiados durante el proceso de transferencia. Funciona con todos los archivos excepto archivos comprimidos, como .zip y .rar. Así es como se ve el comando:
```
scp -C Carpeta root@162.168.1.2
```
Mientras tanto, la opción en minúsculas -c te permite especificar el algoritmo de cifrado de la máquina cliente. Se establece en AnyStdCipher de forma predeterminada, pero puedes utilizar otros valores como aes256-ctr, aes256-cbc y 3des-cbc.
Para verificar todos los valores disponibles, consulta la sección Ciphers en el manual SSH_config. Aquí tienes un ejemplo de comando SCP con cifrado 3des-cbc:
```
scp -c 3des-cbc /users/HolyHosting/desktop/scp.zip root@162.168.1.2
Si deseas copiar un archivo de una manera específica pero el comando SCP no tiene una opción adecuada, utiliza la opción -o. Te permite aplicar las opciones de SSH en el archivo de configuración a tu comando SCP.
Para usar la opción, agrega el par clave-valor de la configuración entre comillas, como se muestra en el siguiente ejemplo de sintaxis:
```
scp -o "opción=valor" /directorio/ruta/archivo
```
Cada opción -o solo toma un par como su valor. Si deseas pasar múltiples configuraciones SSH, agrega más opciones. Por ejemplo, el siguiente comando SCP se conectará al sistema de destino un máximo de dos veces y finalizará el intento después de cinco segundos:
```
scp -o "ConnectionAttempts=2" -o="ConnectTimeout=5" /users/scp.zip root@162.168.1.2
```
Esto no cambiará el archivo de configuración cuando pases las configuraciones SSH, ya que se aplicará solo a tu sesión actual de SCP. Para obtener más información sobre las claves completas y sus valores, consulta el manual SSH_config.
Descubre Otros Comandos de Linux para la Gestión de Servidores
- [Cómo Verificar el Espacio en Disco en Linux](#)
- [Cómo Transferir Datos con el Comando Curl](#)
- [Cómo Calcular la Ejecución de Procesos con el Comando Time](#)
- [Cómo Monitorear Cambios con el Comando Watch](#)
- [Cómo Apagar y Reiniciar el Servidor](#)
- [Cómo Transferir y Sincronizar Datos con Rsync](#)
- [Cómo Matar un Proceso en Linux](#)
- [El Comando Tee para una Escritura de Archivo Eficiente](#)
Conclusión
El comando SCP de Linux permite la copia segura de archivos entre sistemas a través de SSH cifrado, ofreciendo una alternativa más eficiente y segura a FTP. Su sintaxis involucra opciones, direcciones de sistemas, ubicación de archivos y ruta de destino, con la omisión de dirección y directorio para transferencias locales.
SCP no solo permite la transferencia de archivos entre sistemas locales y remotos, sino también entre dos sistemas remotos a través de una máquina local. Las opciones como -P y -
C personalizan el proceso de transferencia.
Los usuarios de HolyHosting pueden beneficiarse de un Asistente de Inteligencia Artificial para generar fácilmente comandos SCP y de una terminal del navegador para ejecutar comandos en servidores remotos a través de navegadores web.