Cómo usar el comando SCP para transferir archivos

Cómo usar el comando SCP para transferir archivos

Este tutorial explica cómo usar el SCP (Copiar seguro) Comando para transferir archivos entre computadoras.

El SCP El comando está disponible en todos los sistemas Linux, Unix y Windows. Su implementación, con toda probabilidad, mejorará y aliviará la experiencia de redes.

La seguridad es proporcionada por el ssh protocolo.

Este comando nos permite transferir archivos de manera confiable y segura de una computadora a otra. Junto con el sftp El comando, también protegido por el protocolo SSH, SCP es una de las técnicas de transferencia de archivos más seguras.

Después de leer este artículo, el lector podrá compartir y obtener archivos fácilmente con comandos únicos.

Todos los ejemplos prácticos en este tutorial contienen capturas de pantalla, lo que facilita a cada usuario de Linux comprender cómo se aplican los comandos.

Requisitos antes de usar SCP

El usuario descargará archivos de o cargará archivos, debe tener el servicio SSH ejecutado.

Si el servicio ya se está ejecutando en el servidor, puede saltar a la siguiente sección de este artículo.

Si el servicio no se ejecuta, el usuario puede instalarlo siguiendo las instrucciones a continuación para las distribuciones de Linux basadas en Debian y Redhat.

En sistemas basados ​​en Debian como Ubuntu, el servicio SSH se puede instalar con el apto Manager de paquetes como se muestra en la imagen a continuación.

sudo apt install ssh

En los sistemas basados ​​en Redhat como CentOS, el servicio SSH se puede instalar ejecutando el siguiente comando:

DNF Instalar OpenSsh-server

Cuando termine la instalación, en el servidor al que desea conectarse, inicie el servicio con el systemctl Comando como se muestra a continuación (Sistemas basados ​​en Debian).

sudo systemctl iniciar ssh

Para comenzar el ssh Servicio en Redhat Systems ejecutar:

sudo systemctl inicio sshd

Cómo descargar archivos y directorios con SCP (Copia segura)

En el primer ejemplo práctico de este tutorial, un usuario descarga un archivo llamado <archivo1> A su directorio de casa.

Es importante recordar que descargar o cargar archivos requiere credenciales de un usuario existente en la computadora remota.

La sintaxis para descargar un archivo con SCP es el siguiente, donde <Usuario remoto> es un usuario existente en la computadora remota que el usuario desea descargar archivos. <Servidor IP> es la dirección host o IP del servidor que almacena el archivo, <Ruta/a/archivo> es la ruta al archivo para descargar y <Director localy> es el directorio local de la computadora del usuario donde se guarda el archivo.

SCP @:

En el ejemplo a continuación, el usuario local Linux-Hint3 Iniciar sesión como el Linuxhint Usuario remoto en el servidor con dirección IP 192.168.0.103 y descarga un archivo llamado <archivo1> A su directorio de casa. Una publicación LS Shows de ejecución de comandos archivo1 está localmente presente.

SCP [email protected]: archivo1 ~/

De manera predeterminada, después de iniciar sesión, el directorio de trabajo actual de trabajo remoto es el directorio de inicio del usuario remoto.

El -O El indicador es útil para ejecutar SCP Legacy necesario para transferir archivos con sistemas que no implementaron el protocolo SFTP.

scp -o [email protected]: archivo1 ~/

En el ejemplo a continuación, el usuario descarga un archivo llamado Newfile2, almacenado bajo el Escritorio/ subdirectorio. El destino local del archivo es el directorio local actual representado por un período.

SCP [email protected]: Desktop/Newfile2 .

Descargar directorios solo requiere agregar el -riñonal (Recursivo) Bandera como se muestra en la captura de pantalla a continuación.

En el ejemplo a continuación, el usuario descarga el directorio remoto nombrado testdir/ al subdirectorio local nombrado directorio/.

scp -r [email protected]: testdir ~/directorio

El -l La bandera permite limitar la transferencia de descarga en KB/s para controlar el ancho de banda.

En la siguiente captura de pantalla, el usuario limita el ancho de banda para la transferencia a 100 kb/ps. Como puede ver, el usuario usó un comodín (*) para descargar todos los archivos cuyo nombre comienza con "ubuntu".

SCP -L 100 [email protected]: Ubuntu* ~/

Si el usuario desea acelerar la transferencia del archivo, puede agregar el -C para comprimir archivos o directorios durante la transferencia, dejando la copia de destino sin comprimir (si la fuente era así).

En el siguiente ejemplo, el usuario implementa el -C (Comprimir) indicando para descargar todos los archivos que comienzan por "ubuntu"Al local Escritorio/ subdirectorio.

SCP -C [email protected]: Ubuntu*/home/linux-hint3/escritorio/

El -4 La opción obliga a la conexión a través de IPv4 y el -6 Opción a través de IPv6.

En la siguiente captura de pantalla, el usuario fuerza la transferencia del archivo a través de IPv4.

SCP -4 [email protected]: Ubuntu*/home/linux-hint3/escritorio/

Cómo cargar archivos y directorios con SCP

Esta sección explica cómo cargar archivos con comandos únicos usando SCP.

La sintaxis para cargar archivos regulares a un sistema remoto que usa SFTP es la siguiente:

SCP @:

En el ejemplo a continuación, el usuario carga un archivo llamado archivo1 al subdirectorio remoto nombrado Documentos/.

Archivo SCP1 [email protected]: Documentos/

Para cargar directorios, use el recursivo -riñonal Bandera, el resto de la sintaxis es similar a los ejemplos descritos anteriormente.

SCP -R Desktop/TestDir [email protected]: Documentos/

El -O El indicador es útil para cargar archivos a los sistemas sin el protocolo SFTP.

SCP -o Desktop/TestDir [email protected]: Documentos/

Para acelerar la transferencia, también al cargar archivos, el usuario puede comprimir.

En el siguiente ejemplo, el usuario combina el recursivo -riñonal bandera con el -C (Bandera de comprimir).

SCP -RC Desktop/TestDir [email protected]: Documentos/

Incapacitante SCP Autenticación de contraseña y habilitación de autenticación clave

Originalmente, el protocolo SCP se basó en el protocolo SSH (Secure Shell), pero actualmente funciona a través de protocolos más nuevos como sftp o rsync.

El archivo de configuración que se editará para habilitar la autenticación de la clave y deshabilitar el inicio de sesión de contraseña es /etc/ssh/sshd_config. Este archivo contiene opciones adicionales para aumentar la seguridad de la transferencia de archivos SCP.

En la computadora, permitiendo conexiones entrantes desde donde se descargan los archivos o donde se cargan, abra el /etc/ssh/sshd_config Archivo con privilegios utilizando un editor de texto sin formato como empuje o nano.

sudo nano/etc/ssh/sshd_config

Desplácese hacia abajo y encuentre la línea que contiene PubKeyAuthentication no, reemplazarlo con PubKeyAuthentication Sí (Reemplace la "No" con "").

También confirmar Permitrootlogin no Deshabilitar el inicio de sesión raíz porque todos en el mundo conocen la existencia del usuario raíz, que puede ser el objetivo de cualquier tipo de ataque, incluida la fuerza bruta.

El raíz Superuser existe en todos los sistemas basados ​​en UNIX, incluido Linux. No es una buena decisión permitir el inicio de sesión con un nombre de usuario privilegiado conocido por todos en el mundo.

No deshabilite el inicio de sesión de contraseña todavía porque el proceso de copia de clave requiere inicio de sesión de contraseña antes de que los sistemas puedan autenticarse con claves.

Salga del archivo de configuración de cambios de ahorro y reinicie el servicio SSH siguiendo las instrucciones a continuación.

Distribuciones de Linux con sede en Debian:

sudo systemctl reiniciar ssh

Distribuciones de Linux basadas en Redhat:

sudo systemctl reiniciar ssh

En el lado del cliente, la computadora descargando y cargando archivos, el usuario debe generar el par de claves con el ssh-keygen dominio.

Después de ejecutar el comando, presione INGRESAR Para dejar el directorio predeterminado (~/.ssh/id_rsa) o el equivalente en su distribución de Linux. El proceso permite que se requiera la implementación de una frase de pases al autenticar. Al incluir una frase de pases, el nivel de seguridad aumenta. Se recomienda escribir uno y presionar INGRESAR. Si no desea agregar una frase de pases, solo presione INGRESAR sin escribirlo.

ssh-keygen

Después de crear con éxito el par de claves, el cliente debe enviar la clave al servidor utilizando el SSH-Copy-ID Comando con la sintaxis del siguiente ejemplo práctico.

SSH-COPY-ID [email protected]

Después de copiar la clave, pruebe el método de autenticación conectando al segundo dispositivo.

Si la autenticación clave tiene éxito, el usuario podrá iniciar sesión sin escribir la contraseña. Si el usuario ha definido una frase de pases al crear el par de las teclas, se solicitará en lugar de la contraseña como se muestra en la captura de pantalla a continuación.

sftp @@

Después de confirmar la autenticación de la clave pública funciona correctamente, se recomienda deshabilitar la autenticación de contraseña.

Para deshabilitar la autenticación de contraseña, en el lado del servidor, abre el archivo /etc/ssh/sshd/config con privilegios nuevamente usando un editor de texto como nano o VI.

sudo nano/etc/ssh/sshd/config

Desplácese hacia abajo en el archivo de configuración y reemplace la línea PAGASSWORDAUTHENTICACIÓN SÍ con Contraseña Autenticación no.

En algunos casos, cuando se reduce el número de usuarios, el puerto SCP/SSH se puede cambiar para evitar escaneos masivos. Este cambio debe hacerse en este archivo. Si el usuario cambia el puerto predeterminado, debe implementar la opción -p al transferir archivos.

Salir guardando cambios.

En los sistemas Linux con sede en Debian, reinicie el servicio SSH con el siguiente comando:

sudo systemctl reiniciar ssh

Reinicie el servicio SSH en distribuciones de Linux basadas en Redhat:

sudo systemctl reiniciar sshd

Ahora el usuario puede iniciar sesión con la autenticación clave.

Conclusión

Usar el comando SCP es bastante fácil. Cada usuario de Linux puede aprenderlo mejorando su experiencia con las tareas de redes. Definitivamente facilita la interacción con otras computadoras dentro de una red desde la línea de comando. Todas las instrucciones en este tutorial son válidas para todas las distribuciones de Linux, excepto los métodos de instalación limitados a las distribuciones de Linux basadas en Debian y Redhat. Cada administrador de red que trabaja desde el terminal debe dominar este comando.