Cómo usar el comando FTP en Linux

El Protocolo de Transferencia de Archivos (FTP por sus siglas en inglés) es más antiguo que la mayoría de nuestros lectores, pero sigue siendo fuerte.

FTP no tiene la seguridad de un protocolo moderno, pero es posible que debas usarlo de todos modos. Aquí te explicamos cómo hacerlo.

Advertencia: no uses FTP a través de Internet

Dejemos esto claro desde el principio: el Protocolo de transferencia de archivos (FTP) se remonta a principios de la década de 1970 y se programó sin tener en cuenta la seguridad.

No usa cifrado para nada. Las credenciales de inicio de sesión como tu nombre de usuario y contraseña, así como los datos que descarga o carga, se transfieren en texto plano.

Cualquier persona en el camino puede ver tus secretos. Sin embargo, FTP todavía tiene sus usos.

Si estás transfiriendo archivos dentro de tu red, debes estar seguro, siempre y cuando nadie en la red detecte paquetes y rastree cualquier documento confidencial mientras los transfieres.

Si tus archivos no son privados o confidenciales de ninguna manera, moverlos alrededor de tu red interna con FTP debería estar bien.

Linux tiene el programa de línea de comandos estándar ftp para tratar precisamente ese escenario.

Pero definitivamente no uses el comando ftp para acceder a recursos externos a través de Internet.

Para eso, mejor debes usar el programa de línea de comandos sftp, que usa el protocolo seguro de transferencia de archivos SSH.

Introduciremos ambos programas en este tutorial.

Para aclarar por qué nunca debes usar FTP a través de Internet, debes echar un vistazo a la siguiente captura de pantalla.

Muestra la contraseña FTP en texto plano. Cualquier persona en tu red o entre tú y el servidor FTP en Internet puede ver fácilmente que la contraseña es “MySecretPassword”.

Sin el cifrado, un actor malicioso también podría modificar los archivos que estás descargando o cargando en tránsito.

Comando FTP

Suponiendo que tienes una cuenta válida en un sitio FTP, puedes conectarte con el siguiente comando.

En este artículo, debes sustituir la dirección IP en los comandos con la dirección IP del servidor FTP al que te estás conectando.

Advertencia: solo debes usar el comando ftp para conectarte a servidores en una red local de confianza. Utiliza el comando sftp, mencionado a continuación, para transferir archivos a través de Internet.

El servidor FTP responde con un mensaje de bienvenida. La redacción del saludo variará de un servidor a otro.

Posteriormente solicita el nombre de usuario de la cuenta en la que estás iniciando sesión.

Observa que se muestra la dirección IP del sitio al que te estás conectando, seguido de tu nombre de usuario de Linux.

Si el nombre de tu cuenta en el servidor FTP es el mismo que tu nombre de usuario de Linux, simplemente presiona la tecla Enter.

Esto usará tu nombre de usuario de Linux como el nombre de la cuenta en el servidor FTP.

Si tu nombre de usuario de Linux y el nombre de la cuenta FTP son diferentes, escribe el nombre de usuario de la cuenta FTP y luego presiona Enter.

Iniciar sesión en el servidor FTP

Se te pedirá que ingreses tu contraseña para el sitio FTP. Ingresa tu contraseña y presiona Enter. Tu contraseña no se muestra en la pantalla.

Si el servidor FTP verifica tu combinación de nombre de usuario y contraseña de FTP, entonces te registra en el servidor FTP.

Se te mostrará ftp> en el indicador.

Mirar alrededor y recuperar archivos

Primero, probablemente desees obtener una lista de los archivos en el servidor FTP.

El comando ls hace exactamente eso. Nuestro usuario ve que el archivo gc.c está en el servidor FTP y quiere descargarlo en su propia computadora.

Su computadora es la “computadora local” en lenguaje FTP.

El comando para recuperar (u “obtener”) un archivo es get. Nuestro usuario, por lo tanto, emite el comando get gc.c.

Escriben get, un espacio y luego el nombre del archivo que desean recuperar.

El servidor FTP responde transfiriendo el archivo a la computadora local y confirmando que se realizó la transferencia.

También se muestra el tamaño del archivo y el tiempo que tardó en transferirse.

Para recuperar varios archivos a la vez, debes usar el comando mget (multiple get).

El comando mget te pedirá que confirmes si deseas descargar cada archivo por turno. Debes responder presionando “y” para sí y “n” para no.

Esto sería tedioso para una gran cantidad de archivos. Debido a esto, las colecciones de archivos relacionados generalmente se almacenan en sitios ftp como archivos únicos tar.gz o tar.bz2.

Subir archivos al servidor FTP

Dependiendo de los permisos otorgados a tu cuenta FTP, es posible que puedas cargar (o “colocar”) archivos en el servidor.

Para cargar un archivo, utiliza el comando put. En nuestro ejemplo, el usuario está cargando un archivo llamado Songs.tar.gz al servidor FTP.

Como probablemente esperas, hay un comando para cargar varios archivos al servidor FTP a la vez. Se llama mput (multiple put).

Al igual que lo hizo el comando mgetmput pedirá una confirmación “y” o “n” para la carga de cada archivo, uno por uno.

El mismo argumento para cargar conjuntos de archivos en archivos tar se aplica para cargar archivos como lo haces para obtener archivos.

Nuestro usuario está cargando múltiples archivos “.odt” con el siguiente comando:

Crear y cambiar directorios

Si tu cuenta de usuario en el servidor ftp lo permite, puedes crear directorios. El comando para hacer esto es mkdir.

Para ser claros, cualquier directorio que crees con el comando mkdir se creará en el servidor ftp y no en tu computadora local.

Para cambiar los directorios en el servidor ftp, usa el comando cd. Cuando uses el comando cd, el indicador ftp> no cambiará para reflejar tu nuevo directorio actual.

El comando pwd (print working directory) te mostrará tu directorio actual.

Nuestro usuario ftp crea un directorio llamado music, cambia a ese nuevo directorio, confirma dónde están usando el comando pwd y luego carga un archivo en ese directorio.

Para moverse rápidamente al directorio principal del directorio actual, debes usar el comando cdup.

Accediendo a la computadora local

Para cambiar el directorio en la computadora local, puedes usar el comando lcd en el indicador ftp>.

Sin embargo, es fácil perder la noción de dónde te encuentras en el sistema de archivos local.

Un método más conveniente para acceder al sistema de archivos local es usar el comando !.

El comando ! abre una ventana de shell en la computadora local.

Puedes hacer cualquier cosa en esta shell que puedes hacer en una ventana de terminal estándar. Cuando escribas exit, volverás al indicador ftp>.

Nuestro usuario ha utilizado el comando ! e ingresó una ventana de shell en la computadora local.

Ha emitido un comando ls para ver qué archivos están presentes en ese directorio y luego escribió exit para volver al indicador ftp>.

Renombrar archivos

Para cambiar el nombre de los archivos en el servidor FTP, utiliza el comando rename.

Aquí nuestro usuario FTP cambia el nombre de un archivo con rename y luego usa el comando ls para enumerar los archivos en el directorio.

Eliminar archivos

Para eliminar archivos en el servidor FTP, debes usar el comando delete. Para eliminar varios archivos a la vez, usa el comando mdelete.

Se te pedirá que proporciones una confirmación “y” o “n” para la eliminación de cada archivo.

Aquí nuestro usuario FTP enumeró los archivos para ver sus nombres y luego ha elegido uno para eliminar. Luego decide eliminarlos a todos.

Usando el comando sftp

Los lectores familiarizados con el sistema de direccionamiento IP habrán notado que la dirección 192.168 del servidor FTP utilizada en los ejemplos anteriores es una dirección IP interna, también llamada dirección IP privada.

Como advertimos al comienzo de este artículo, el comando ftp solo debe usarse en redes internas.

Si deseas conectarte a un servidor FTP público o remoto, utiliza el comando sftp.

Nuestro usuario se va a conectar a una cuenta SFTP llamada demo en el servidor FTP de acceso público ubicado en test.trebex.net.

Cuando te conectas, se te informa que la conexión se ha establecido. También se te informa que no se puede verificar la autenticidad del host.

Esto es normal para la primera conexión de un nuevo host. Presiona “y” para aceptar la conexión.

Debido a que el nombre de cuenta de usuario (demo) se pasó en la línea de comando, no se te solicita el nombre de cuenta de usuario.

Solo se te solicita la contraseña. Esta se ingresa, se verifica y se acepta, y se muestra el indicador sftp>.

Los comandos FTP que hemos descrito anteriormente funcionarán igual en una sesión SFTP, con las siguientes excepciones.

  • Para eliminar un archivo, utiliza rm (FTP utiliza delete)
  • Si deseas eliminar múltiples archivos utiliza rm (FTP usa mdelete)
  • Para pasar al directorio principal, utiliza cd ..(FTP utiliza cdup)

Nuestro usuario ha utilizado algunos comandos en su sesión SFTP.

Utiliza para ls enumerar los archivos y cd para cambiar al directorio pub. Ha utilizado pwd para mostrar el directorio de trabajo.

Hay otras opciones para transferir archivos en el mundo Linux, especialmente scp (copia segura), pero aquí nos hemos centrado en FTP y SFTP.

Utilizados en los escenarios aplicables, estos dos comandos te servirán a ti y tus necesidades de almacenamiento y recuperación de archivos.