
SCP Lea el protocolo de copia segura, que utiliza SSH para copiar archivos de forma segura a través de la red. Personalmente, encuentro este comando muy útil ya que suelo utilizar varias máquinas virtuales para realizar pruebas.
Pero la pregunta es: ¿cómo utilizar este comando? Bueno, comienza con la sintaxis correcta y algunos ejemplos. Para aprender más es necesario practicar, ¿verdad?
No te preocupes, compartiré todo lo que necesitas para comenzar y mejorar. comando scp en linux.
A continuación se describe cómo utilizar el comando scp en Linux.
Comencemos con la sintaxis, aquí está el formato del comando scp:
scp [options] [user@]sourceIP:path/to/file [user@]destinationIP:path/to/destination
📋
Si está copiando archivos hacia o desde su computadora local, puede omitir agregar el nombre de usuario y la dirección IP y usar la ruta directamente.
La sintaxis parece un poco complicada. ¿correcto? No te preocupes, lo desglosaré para que sea más fácil de entender.
aquí,
[options]
: Se utiliza para ajustar el comportamiento preestablecido del comando scp, por ejemplo usando-r
Opción de copiar archivos de forma recursiva.[user@]sourceIP:path/to/file
: Aquí, especifica la dirección IP de origen de la computadora donde se encuentra el archivo y menciona la ruta del archivo.Por ejemplo, si quiero copiarsimple.txt
Archivo de198.168.1.1
IP, entonces usaré esto:[email protected]:path/to/simple.txt
.[user@]destinationIP:path/to/destination
: Aquí especifica el nombre de usuario y la dirección IP, así como la ruta a la que se debe copiar el archivo.Por ejemplo, si quiero copiar un archivo a192.168.1.5
La dirección IP es/home/files
ubicación, entonces, esto es lo que escribo:[email protected]:/home/files
.
Ahora que conocemos los conceptos básicos, veamos las opciones más utilizadas del comando scp:
Opciones | describir |
---|---|
-P | Especifique el puerto para conectarse al host remoto. |
-p | Conserve la hora de modificación y los bits del modo de archivo del archivo original. |
-q | Habilite el modo silencioso para suprimir cualquier mensaje de error o advertencia. |
-C | Fuerza SSH para comprimir los datos enviados al destino. |
-r | Copie archivos de forma recursiva. |
Aguanta ahí ✋
Antes de pasar al ejemplo del uso del comando scp en Linux, hay 3 cosas para recordar:
- SSH debe instalarse tanto en el extremo remoto como en la máquina local. Si no, aquí está Cómo instalar SSH en Ubuntu y otras distribuciones basadas en Debian.
- Asegúrese de conocer la contraseña de la computadora remota y de que el firewall (si está habilitado) esté configurado para Permitir conexiones SSH.
- necesitas Conozca la dirección IP O el nombre de host de la computadora remota.
Teniendo en cuenta que ya entiendes la esencia, ahora te guiaré a través de 10 formas prácticas de usar el comando scp en Linux, desde ejemplos básicos hasta avanzados.
Entonces, comencemos enviando archivos desde una computadora local a una remota.
1. Enviar archivos desde la máquina local a la remota
Para transferir archivos desde la computadora local a una computadora remota, puede usar el comando scp de la siguiente manera:
scp /path/to/file [user@]destinationIP:path/to/destination
Sí, si envía archivos a una computadora remota, no necesita especificar el nombre de usuario ni la dirección IP de origen.
Por ejemplo, aquí envié Sample.txt
Archivo a mi máquina remota ~/Documents
Tabla de contenido:
scp Sample.txt [email protected]:~/Documents/
2. Enviar archivos desde la máquina remota a la máquina local
Para transferir archivos desde una computadora remota a la computadora local, puede usar el comando scp de la siguiente manera:
scp [user@]sourceIP:path/to/file /location/in/local/computer
Por ejemplo, aquí copié Sample.txt
Archivos de la computadora remota a mi computadora local en mi directorio de inicio:
scp [email protected]:~/Sample.txt ~/

3. Transferir archivos entre dos máquinas remotas
Si desea transferir archivos entre dos computadoras remotas, debe especificar los nombres de usuario y las direcciones IP de ambas computadoras, de la siguiente manera:
scp [user@]sourceIP:path/to/file [user@]destinationIP:path/to/destination
Por ejemplo, así es como envío myfiles.txt
Utilice el comando scp de una computadora remota a otra:
scp [email protected]:~/myfiles.txt [email protected]:~/Documents/

A diferencia del ejemplo anterior, cuando transfiere un archivo entre dos hosts remotos, no se muestra ningún resultado después de transferir el archivo, por lo que debe verificarlo manualmente.
Es por eso que, en la instantánea anterior, inicié sesión en la máquina virtual (en la ventana derecha) y capturé los resultados antes y después de ejecutar el comando scp para mostrarles la diferencia.
4. Especifique el puerto SSH (si usa un puerto SSH diferente)
De forma predeterminada, SSH usa el número de puerto Veintidós.Sin embargo, si configura el host remoto para usar SSH en un puerto diferente, puede usar -P
Especifique la bandera del puerto:
scp -P /path/to/local/file [user@]destinationIP:path/to/destination
Supongamos que mi host remoto está configurado para usar el puerto 2222, por lo que usaré el siguiente comando para transferir archivos desde mi computadora local al host remoto:
scp -P 2222 ~/Sample.txt [email protected]:~/

5. Utilice scp para conservar el tiempo de modificación
De forma predeterminada, cuando envía un archivo a través de scp, cambia la hora (hora de modificación) según cuándo se recibió el archivo, por lo que pierde esos detalles importantes.
Pero la buena noticia es que puedes conservar estas marcas de tiempo usando -p
(Nota: p minúscula) El logotipo se muestra a continuación:
scp -p [user@]sourceIP:path/to/file [user@]destinationIP:path/to/destination
Por ejemplo, aquí estoy usando el siguiente comando para enviar un archivo desde una computadora local a una remota -p
Banderas que conservan marcas de tiempo:
scp -p ~/Sample.txt [email protected]:~/

Esta es la diferencia entre enviar archivos con y sin -p
bandera:

6. Envíe archivos en silencio (suprima los mensajes de salida)
Si desea ignorar los mensajes de salida, error y advertencia al enviar archivos usando el comando scp, puede usar -q
El logotipo se muestra a continuación:
scp [options] [user@]sourceIP:path/to/file [user@]destinationIP:path/to/destination
Para fines de demostración, aquí uso -q
Marque al transferir archivos desde una computadora local a una computadora remota:
scp -q ~/Sample.txt [email protected]:~/

7. Comprime archivos para acelerar la transferencia
No, no crea un archivo comprimido del archivo. La compresión es efectiva para transferir archivos. Una vez completado, se verá y se comportará igual que el archivo seleccionado.
Para comprimir archivos usando el comando scp debes usar -C
El logotipo se muestra a continuación:
scp [options] [user@]sourceIP:path/to/file [user@]destinationIP:path/to/destination
Por ejemplo, aquí envié un archivo de video 3.4G y me tomó aproximadamente un minuto y medio transferirlo:
scp -C ~/Movie.mkv [email protected]:~/

8. Transfiere todo el directorio
En Linux, a esto se le llama enviar archivos de forma recursiva, pero coloquialmente también se le puede llamar enviar un directorio completo.
Para enviar archivos de forma recursiva puedes usar -r
El logotipo se muestra a continuación:
scp -r [user@]sourceIP:path/to/directory [user@]destinationIP:path/to/destination
Por ejemplo, aquí quiero enviar scp
directorio, así es como lo uso -r
Banderas para enviar todos los archivos de forma recursiva:
scp -r ~/scp/ [email protected]:~/

Preguntas de práctica 📓
A continuación se muestran algunos ejercicios que puede utilizar para mejorar el uso del comando scp:
- ¿Cómo enviarías todo?
.txt
¿Archivo al servidor remoto? - Suponiendo que su servidor remoto esté configurado para escuchar SSH en el puerto número 2345, ¿cómo le enviaría archivos?
- ¿Cómo copiar un directorio completo usando el comando scp?
- ¿Cómo comprimir archivos largos para una transmisión eficiente?
- ¿Cómo transferir archivos entre dos servidores remotos manteniendo sin cambios el tiempo de modificación?
Si tiene problemas para resolver los problemas anteriores, puede contactarnos a través de comentarios o visitar nuestro foro social.
Más formas de enviar archivos vía SSH
Si desea más opciones pero necesita la seguridad de SSH, consulte nuestra guía detallada que explica 4 formas de enviar archivos a través de SSH:
Cómo cargar archivos al sistema remoto a través de SSH
Del scp tradicional al rsync moderno. Desde sshfs no convencionales hasta la conveniencia GUI de FileZilla. Conozca las diferentes formas de copiar archivos a través de SSH.

Además, puedes explorar otros métodos para transferir archivos entre diferentes plataformas:
3 formas de compartir archivos fácilmente entre Linux, Windows y macOS
Hay varias formas de compartir archivos fácilmente entre Linux, Windows y macOS.

💬 ¿Cuál es tu forma preferida de transferir archivos entre sistemas? ¿Encuentra una directiva como scp adecuada para su caso de uso? Déjame saber tu opinión en los comentarios a continuación.