Los fundamentos de la transferencia segura de archivos

LinuxBeginner
Practicar Ahora

Introducción

Esta práctica cubrirá los conceptos básicos de cómo utilizar la línea de comandos de Linux para transferir archivos utilizando SFTP, FTP y SCP. Estas herramientas se utilizan comúnmente para transferir archivos a y desde servidores remotos y pueden ser útiles para tareas como la carga de archivos de un sitio web a un servidor o la descarga de datos de una máquina remota.

Hemos configurado un servidor SFTP y FTP en el entorno de la práctica. Cuando lo utilices en la realidad, asegúrate de tener las credenciales necesarias para acceder al servidor remoto (como un nombre de usuario y una contraseña) y de que el servidor esté configurado para permitir transferencias de archivos a través de SFTP, FTP y SCP.

Logros

  • sftp - Protocolo de Transferencia de Archivos Seguro
  • ftp - Protocolo de Transferencia de Archivos
  • scp - Copia Segura

Conectarse a un servidor remoto con SFTP

SFTP (Protocolo de Transferencia de Archivos Seguro) es una forma segura de transferir archivos entre una máquina local y un servidor remoto.

Para conectarse a un servidor remoto utilizando SFTP, puedes utilizar el comando sftp seguido del nombre de usuario y la dirección IP o el nombre de host del servidor. Por ejemplo:

La contraseña para el usuario sftpuser es 123456.

sftp sftpuser@127.0.0.1
## Escribe yes para aceptar la huella digital del servidor

Se te pedirá la contraseña del usuario. Una vez que hayas introducido la contraseña correcta, estarás conectado al servidor remoto.

Transferir archivos con SFTP

Una vez que esté conectado al servidor remoto, puede transferir archivos utilizando los comandos put y get.

Para cargar un archivo desde su máquina local al servidor remoto, utilice el comando put seguido de la ruta al archivo local. Por ejemplo:

put /home/labex/.zshrc

Para descargar un archivo desde el servidor remoto a su máquina local, utilice el comando get seguido de la ruta al archivo remoto. Por ejemplo:

get .zshrc

Cuando haya terminado de transferir archivos, puede cerrar la conexión SFTP utilizando el comando exit.

exit

Asegúrese de cerrar la conexión SFTP antes de hacer clic en el botón "Continue" (Continuar).

Conectarse a un servidor remoto con FTP

FTP (Protocolo de Transferencia de Archivos) es un protocolo de red estándar utilizado para transferir archivos entre una máquina local y un servidor remoto. Es menos seguro que SFTP, ya que transmite datos en texto plano.

Puedes comprobar el estado del servicio FTP ejecutando el siguiente comando:

sudo service vsftpd status

Si el servicio FTP no está en ejecución, puedes iniciarlo ejecutando el siguiente comando:

sudo service vsftpd start

Para conectarse a un servidor remoto utilizando FTP, puedes utilizar el comando ftp seguido de la dirección IP o el nombre de host del servidor. Por ejemplo:

El nombre de usuario para el ftp es ftpuser y la contraseña es 123456

ftp 127.0.0.1

Se te pedirá el nombre de usuario y la contraseña del servidor. Una vez que hayas introducido las credenciales correctas, estarás conectado al servidor remoto.

Transferir Archivos con FTP

Una vez que esté conectado al servidor remoto, puede transferir archivos utilizando los comandos put y get.

Para cargar un archivo desde su máquina local al servidor remoto, utilice el comando put seguido de la ruta al archivo local. Por ejemplo:

## Upload .zshrc file to the server and rename it to zshrc-upload
put /home/labex/.zshrc zshrc-upload

El archivo se cargará al directorio actual en el servidor (/home/ftpuser).

Para descargar un archivo desde el servidor remoto a su máquina local, utilice el comando get seguido de la ruta al archivo remoto. Por ejemplo:

get zshrc-upload

El archivo se descargará al directorio actual en la máquina local.

Para obtener más información sobre los comandos FTP, ejecute el comando help en la shell FTP (intérprete de comandos FTP).

Cuando haya terminado de transferir archivos, puede cerrar la conexión FTP utilizando el comando bye o exit.

bye

Asegúrese de cerrar la conexión FTP antes de hacer clic en el botón "Continue" (Continuar).

Copiar archivos a un servidor remoto

SCP (Secure Copy) es una utilidad de línea de comandos que permite transferir archivos de forma segura entre una máquina local y un servidor remoto, o entre dos servidores remotos. Utiliza SSH (Secure Shell) para cifrar los datos durante la transferencia, garantizando que los archivos se transmitan de manera segura.

La sintaxis básica del comando scp es la siguiente:

scp [options] [source] [destination]

Los argumentos source (origen) y destination (destino) pueden ser un archivo o directorio local, o bien un archivo o directorio remoto con el formato username@host:path.

Por ejemplo, para copiar un archivo llamado file.txt desde tu máquina local a un servidor remoto con la dirección IP 127.0.0.1, utilizarías el siguiente comando:

Para obtener la contraseña del usuario labex, escribe printenv | grep PASSWORD en la terminal del escritorio. Otras terminales fuera de la interfaz de escritorio no mostrarán la contraseña.

Ejemplo del comando SCP

cd ~/project

## Ver la contraseña del usuario labex
printenv | grep PASSWORD

## Copiar el archivo al servidor remoto
scp file.txt labex@127.0.0.1:/home/labex/file-scp.txt

## Introduce la contraseña del usuario labex

Descargar archivos desde el servidor remoto

También puedes utilizar scp para descargar archivos desde un servidor remoto.

Por ejemplo, para descargar un archivo file.txt de un servidor remoto con la dirección IP 127.0.0.1 a la máquina local, utilizarías el siguiente comando:

scp labex@127.0.0.1:/home/labex/file-scp.txt /home/labex/file-scp-new.txt

También puedes establecer el directorio local como destino, asegúrate de incluir la barra diagonal final (/) en la ruta.

Opciones avanzadas de SCP

scp también tiene varias opciones avanzadas que se pueden utilizar para personalizar la transferencia de archivos. Algunas de las opciones más comúnmente utilizadas incluyen:

  • -r - Esta opción te permite copiar recursivamente directorios completos.
  • -C - Esta opción habilita la compresión durante la transferencia de archivos, lo que puede ser útil al transferir archivos grandes a través de una conexión lenta.
  • -P - Esta opción te permite especificar un número de puerto para la conexión.

Por ejemplo, para copiar el directorio ~/Escritorio de la máquina local a un servidor remoto con la dirección IP 127.0.0.1 utilizando compresión y especificando un número de puerto, utilizarías el siguiente comando:

scp -r -C -P 22 ~/Escritorio labex@127.0.0.1:/home/labex/Código/

Resumen

Esta práctica presentó los comandos Linux SFTP, FTP y SCP, que se utilizan para transferir archivos entre una máquina local y un servidor remoto o entre dos servidores remotos. SFTP es una forma segura de transferir archivos, mientras que FTP es un protocolo de red estándar que es menos seguro que SFTP. SCP es una utilidad de línea de comandos que te permite transferir archivos de manera segura entre una máquina local y un servidor remoto o entre dos servidores remotos utilizando SSH (Secure Shell) para cifrar los datos que se transfieren. También cubrió algunas opciones avanzadas disponibles con el comando SCP que se pueden utilizar para personalizar la transferencia de archivos, como las opciones -r, -C y -P.