Cómo usar el comando scp en Linux
Deberíascp
El comando hace que sea fácil y seguro copiar archivos entre computadoras Linux. Utiliza seguridad SSH, pero lo más importante es que es simple.puede ser usadocp
luego aplicarscp
.
Protocolo de copia segura y scp
Definamos algunos términos: tiene SCP y tienescp
. SCP en mayúsculas significa acuerdo de copia segura.minúsculascp
significa segurocp
. En otras palabras, SCP es un protocolo,scp
es un programa
scp
Diseñado para ser una forma segura de copiar archivos entre computadoras Linux remotas. Utiliza SSH para establecer una conexión segura. SSH, o Secure Shell, es un protocolo de red encriptado comúnmente utilizado para acceder e iniciar sesión en computadoras Linux remotas. En las distribuciones de Linux, OpenSSH proporciona la funcionalidad SSH.
SCP se ha convertido en un cliché, y la gente ha expresado su preocupación por su uso en la actualidad. SCP se considera obsoleto a partir de la versión 8.8 de OpenSSH. Por defecto, implementaciones modernasscp
El protocolo de transferencia segura de archivos se utiliza de forma predeterminada. SSH todavía se usa para conexiones seguras, pero las transferencias de archivos son manejadas por SFTP. Todo es invisible y ocurre mágicamente entre bastidores,scp
La sintaxis sigue siendo la misma.
Deberíarsync
programa superior ascp
, pero es posible que encuentre unrsync
instalado y no tiene acceso de root, lo que significa que no puede continuar con la instalación. Para copiar archivos de una computadora a otra en una red aislada,scp
Muy bueno.desearscp
para que funcione, debe ejecutar SSH en todas las máquinas que desea copiar.
Para ver la versión de OpenSSH instalada en su computadora, escriba:
ssh -V
copiar un solo archivo
con estándarcp
Lo mismo que el comando, seráscp
Los archivos se copian desde la ubicación de origen a la ubicación de destino. Para copiar archivos a una computadora remota, debe conocer la dirección IP o el nombre de la red de la computadora remota. También debe tener credenciales para una cuenta de usuario que tenga permisos de escritura en la ubicación a la que desea enviar el archivo.
Para enviar un archivo llamado «sample.txt» a una computadora llamada «fedora-34» en la red local, la sintaxis es:
scp./muestra.txt dave@fedora-34.local:/home/dave/Descargas/
El comando consta de las siguientes partes:
- scp: comando scp
- ./muestra.txt: El archivo que queremos enviar. Esto está en el directorio actual.
- Dave@: La cuenta de usuario en el equipo remoto al que queremos enviar el archivo.
- fedora-34.local: El nombre de red de la computadora remota.
- :/inicio/dave/descargas/: copia el archivo a una ubicación en la computadora remota. Tenga en cuenta los dos puntos «:» que separan el nombre de la computadora y la ruta.
Se le pedirá que ingrese la contraseña de la cuenta en la computadora remota y luego se copiarán los archivos.
Si desea que el archivo tenga un nombre diferente en la computadora remota, puede agregar el nombre de archivo a la ruta de destino. Para copiar el mismo archivo y nombrarlo «diferente-archivo.txt», use la siguiente sintaxis:
scp./muestra.txt dave@fedora-34.local:/home/dave/Downloads/diferente-archivo.txt
Deberíascp
El comando sobrescribirá silenciosamente los archivos existentes, así que tenga cuidado al copiar archivos. Si ya existe un archivo con el mismo nombre que el archivo que está copiando en la computadora de destino, se sobrescribirá y se perderá.
Si la máquina de destino no está usando el puerto SSH predeterminado 22, puede usar-P
(número de puerto) opción para proporcionar el número de puerto adecuado.
recuperar un solo archivo
Para copiar archivos desde un servidor remoto, simplemente use el servidor remoto como fuente y la ruta local donde se copiarán los archivos como destino. Copiaremos un archivo llamado «plan de desarrollo.md» desde la computadora remota al directorio actual de la computadora local.
scp dave@fedora-34.local:/home/dave/Descargas/plan-de-desarrollo.md.
Si agrega el nombre de archivo a la ruta local, el archivo se copiará y se nombrará.
scp dave@fedora-34.local:/home/dave/Descargas/plan-de-desarrollo.md./dp-1.md
El archivo se copia pero se renombra al nombre de archivo que especificamos.
ls-hl *.md
copiar varios archivos
Copiar varios archivos en cualquier dirección es fácil. Puede enumerar cualquier número de archivos de origen. Aquí estamos copiando dos archivos de rebajas y un archivo CSV.
scp./dp-1.md./dp-2.md./dp-3.csv dave@fedora-34.local:/home/dave/Descargas/
Estos tres archivos se copian en la computadora remota. También puede utilizar comodines. Este comando hace exactamente lo mismo que el comando anterior.
scp./dp.dave@fedora-34.local:/home/dave/Descargas/
Copiar directorios recursivamente
(-r
recursivo) le permite copiar un árbol de directorio completo con un solo comando. Colocamos los dos archivos en un directorio llamado «datos» y creamos un directorio llamado «CSV» dentro del directorio «datos». Colocamos un archivo CSV en el directorio «data/CSV».
Este comando copia archivos y recrea la estructura de directorios en la computadora remota.
scp -r./datos dave@fedora-34.local:/home/dave/Descargas/
Copie archivos entre servidores remotos
Incluso puedes dirigirscp
Copie archivos de un servidor remoto a otro. La sintaxis es muy simple. Usted proporciona el nombre de cuenta y la dirección de red del servidor de origen y el nombre de cuenta y la dirección de red del servidor de destino. Los archivos se copian desde el servidor de origen y se copian en una ubicación en el servidor de destino.
Si bien la sintaxis es simple, asegurarse de que todo lo demás encaje en su lugar requiere un poco más de reflexión. Obviamente, la ubicación en el servidor remoto en el que intenta copiar el archivo debe ser accesible para la cuenta de usuario que especifique en la línea de comando. Y esa cuenta de usuario debe tener acceso de escritura a la ubicación.
Un requisito previo más sutil es que el acceso SSH debe configurarse entre la máquina local y la máquina de origen, y entre el servidor de origen y el servidor de destino. Asegúrese de que puede iniciar sesión en el servidor de destino desde el servidor de origen mediante SSH. Si no puede hacerlo,scp
no podrá conectarse.
La configuración de claves SSH para que pueda usar el acceso autenticado pero sin contraseña es, con mucho, el método preferido. El uso de contraseñas puede volverse confuso rápidamente y, debido a que se le solicitará una contraseña para cada cuenta de usuario, le impide automatizar completamente el proceso con scripts.
Configuramos claves SSH para las cuentas de usuario utilizadas en cada servidor remoto. Esto proporciona acceso SSH transparente al otro servidor para ambos usuarios. Esto nos permite transferir archivos en ambas direcciones utilizando estas dos cuentas de usuario.
scp
Para emitir desde su máquina Ubuntu localEl comando para copiar archivos de la cuenta de usuario «davem» en la máquina Manjaro a la cuenta «dave» en la máquina Fedora tiene la sintaxis:
scp davem@manjaro20-0-1.local:/home/davem/man.dave@fedora-34.local:/home/dave/
Regresamos en silencio a la línea de comando. No hay indicios de lo que pasó. Partiendo de la premisa de que la ausencia de noticias es una buena noticia,scp
Solo se notifican los errores de replicación remota a remota. Mirando la computadora Fedora, puede ver que los archivos de la computadora Manjaro han sido copiados y recibidos.
De manera predeterminada, los archivos se copian directamente desde la computadora de origen a la computadora de destino.puedes usarlo-3
(tres vías) la anula.
Con esta opción, los archivos se transferirán desde el destino al origen a través de su computadora local. Para esto, se requiere un acceso SSH sin interrupciones desde la computadora local a la computadora de destino.
scp -3 davem@manjaro20-0-1.local:/home/davem/man.dave@fedora-34.local:/home/dave/
Todavía no hay indicios de que haya sucedido nada, incluso cuando transfiero archivos a través de mi computadora local. La prueba del pudín, por supuesto, es verificar la computadora de destino.
otras opciones
(-p
Conservar atributos de archivo) conservará las marcas de creación, propiedad y acceso del archivo original en el archivo transferido. Tendrán los mismos metadatos que los archivos originales en la computadora de origen.
Si ve un mensaje de error, intente repetir el comando con-v
(detallado) para ver información detallada sobre el intento de transferencia. Debería poder detectar el punto de falla en la salida.
(-C
compress) comprime el archivo cuando se copia y lo descomprime cuando se recibe. Esto se remonta a los días en que las computadoras usaban módems lentos para comunicarse entre sí. La reducción del tamaño de la carga útil reduce el tiempo de transmisión.
Comprimir y descomprimir archivos puede llevar más tiempo que la diferencia entre las transferencias comprimidas y sin comprimir en estos días.pero porquescp
Lo mejor para copiar archivos entre computadoras en la misma LAN, por lo que la velocidad de transferencia no debería ser una gran preocupación.