Cómo utilizar el comando FTP en Linux

Indicador de terminal estilizado de Linux
Fatmawati Achmad Zaenuri / Shutterstock.com

El Protocolo de transferencia de archivos es más antiguo que la mayoría de nuestros lectores, pero sigue siendo sólido. FTP no tiene la seguridad de un protocolo moderno, pero es posible que deba usarlo de todos modos. He aquí cómo hacerlo.

Advertencia: no utilice 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 escribió sin tener en cuenta la seguridad. No utiliza cifrado para nada. Las credenciales de inicio de sesión, como su nombre de usuario y contraseña, así como los datos que descarga o carga, se transfieren en texto sin cifrar. Cualquiera en el camino puede ver sus secretos. Sin embargo, FTP todavía tiene sus usos.

Si está transfiriendo archivos dentro de su red, debe estar seguro, siempre que nadie en la red esté rastreando paquetes y espiando documentos confidenciales mientras los transfiere. Si sus archivos no son confidenciales o sensibles de ninguna manera, moverlos por su red interna con FTP debería estar bien. Linux tiene el ftp programa de línea de comandos estándar para lidiar precisamente con ese escenario.

Pero definitivamente no use el  ftp comando para acceder a recursos externos a través de Internet. Para eso, use el sftp programa de línea de comandos , que usa el protocolo seguro de transferencia de archivos SSH. Presentaremos ambos programas en este tutorial.

Para aclarar por qué nunca desea utilizar FTP a través de Internet, eche un vistazo a la siguiente captura de pantalla. Muestra la contraseña de FTP en texto plano. Cualquiera en su red o entre usted y el servidor FTP en Internet puede ver fácilmente que la contraseña es «MySecretPassword».

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

Seguimiento de paquetes de red con contraseña de texto sin cifrar

El comando ftp

Suponiendo que tiene una cuenta válida en un sitio FTP, puede conectarse con el siguiente comando. A lo largo de este artículo, sustituya la dirección IP en los comandos con la dirección IP del servidor FTP al que se está conectando.

ftp 192.168.4.25

Advertencia : solo debe usar el ftpcomando para conectarse a servidores en una red local confiable. Utilice el sftpcomando, que se describe a continuación, para transferir archivos a través de Internet.

Relacionado:  Cómo usar filtros de Wireshark en Linux

comando de conexión ftp en una ventana de terminal

El servidor FTP responde con un mensaje de bienvenida. La redacción del saludo variará de un servidor a otro. Luego solicita el nombre de usuario de la cuenta en la que está iniciando sesión.

Observe que se muestra la dirección IP del sitio al que se está conectando, seguida de su nombre de usuario de Linux. Si el nombre de su cuenta en el servidor FTP es el mismo que su nombre de usuario de Linux, simplemente presione la tecla Intro. Esto usará su nombre de usuario de Linux como el nombre de la cuenta en el servidor FTP. Si su nombre de usuario de Linux y el nombre de la cuenta FTP son diferentes, escriba el nombre de usuario de la cuenta FTP y luego presione Enter.

Iniciar sesión en el servidor FTP

Se le pedirá que ingrese su contraseña para el sitio FTP. Ingrese su contraseña y presione Enter. Su contraseña no se muestra en la pantalla. Si el servidor FTP verifica la combinación de su nombre de cuenta de usuario y contraseña de FTP, se iniciará sesión en el servidor de FTP.

Se le presentará el ftp>mensaje.

inició sesión en la cuenta ftp en una ventana de terminal

Mirar alrededor y recuperar archivos

Primero, probablemente querrá obtener una lista de los archivos en el servidor FTP. El lscomando hace precisamente eso. Nuestro usuario ve que el archivo gc.cestá en el servidor FTP y quiere descargarlo en su propia computadora. Su computadora es la «computadora local» en el lenguaje FTP.

El comando para recuperar (u «obtener») un archivo es get. Nuestro usuario, por 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 muestran el tamaño del archivo y el tiempo que tardó en transferirse.

ls
obtener gc.c

transferencia de archivos ftp en una ventana de terminal

Para recuperar varios archivos a la vez, utilice el  mgetcomando (obtención múltiple). El mgetcomando le pedirá que confirme si desea descargar cada archivo por turno. Responda presionando “y” para sí y “n” para no.

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

mget * .c

comando mget en una ventana de terminal

Carga de archivos al servidor FTP

Dependiendo de los permisos que se hayan otorgado a su cuenta FTP, es posible que pueda cargar (o «poner») archivos en el servidor. Para cargar un archivo, use el putcomando. En nuestro ejemplo, el usuario está cargando un archivo llamado Songs.tar.gzal servidor FTP.

poner Songs.tar.gz

poner comando en una ventana de terminal

Como probablemente espera, existe un comando para colocar varios archivos en el servidor FTP a la vez. Se llama mput(colocación múltiple). Al igual que lo mgethizo el comando, mputpedirá una confirmación «y» o «n» para la carga de cada archivo, uno por uno.

Relacionado:  Cómo usar expresiones regulares (regexes) en Linux

El mismo argumento para colocar conjuntos de archivos en archivos tar se aplica tanto para colocar archivos como para obtener archivos. Nuestro usuario está cargando varios archivos «.odt» con el siguiente comando:

mput * .odt

comando mput en una ventana de terminal

Crear y cambiar directorios

Si su cuenta de usuario en el servidor ftp lo permite, es posible que pueda crear directorios. El comando para hacer esto es mkdir. Para que quede claro, cualquier directorio que cree con el mkdircomando se creará en el servidor ftp y no en su computadora local.

Para cambiar directorios en el servidor ftp, use el cdcomando. Cuando use el cdcomando, el ftp>indicador no cambiará para reflejar su nuevo directorio actual. El pwdcomando (imprimir directorio de trabajo) le mostrará su directorio actual.

Nuestro usuario de ftp crea un directorio llamado música, cambia a ese nuevo directorio, confirma dónde están usando el pwdcomando y luego carga un archivo en ese directorio.

música mkdir
cd de música
pwd
poner canciones.tar.gz

comandos cd pwd y mkdir en una ventana de terminal

Para moverse rápidamente al directorio principal del directorio actual, use el cdupcomando.

cdup

comando cdup en una ventana de ventana de terminal

Acceso a la computadora local

Para cambiar el directorio en la computadora local, puede usar el lcdcomando en el ftp>indicador. Sin embargo, es fácil perder de vista dónde se encuentra 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. Puede hacer cualquier cosa en este shell que pueda en una ventana de terminal estándar. Cuando escribe exit, vuelve al ftp>indicador.

Nuestro usuario utilizó el !comando y entró en una ventana de shell en la computadora local. Han emitido un lscomando para ver qué archivos están presentes en ese directorio y luego han escrito exitpara volver al ftp>indicador.

!
ls
salida

!  comando de shell en una ventana de terminal

Cambio de nombre de archivos

Para cambiar el nombre de los archivos en el servidor FTP, utilice el renamecomando. Aquí nuestro usuario de FTP cambia el nombre de un archivo con renamey luego usa el lscomando para listar los archivos en el directorio.

cambiar el nombre de songs.tar.gz rock_songs.tar.gz
ls

cambiar el nombre del comando en la ventana del terminal

Eliminar archivos

Para eliminar archivos en el servidor FTP, use el deletecomando. Para eliminar varios archivos a la vez, use el mdeletecomando. Se le pedirá que proporcione una confirmación «y» o «n» para la eliminación de cada archivo.

Relacionado:  Cómo usar journalctl para leer registros del sistema Linux

Aquí nuestro usuario de FTP ha enumerado los archivos para ver sus nombres y luego ha elegido uno para eliminarlo. Luego deciden eliminarlos todos.

ls
eliminar gc.o
mdelete * .o

ls comandos delete y mdelete en una ventana de terminal

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 ftpcomando solo debe usarse en redes internas.

Si desea conectarse a un servidor FTP público o remoto, utilice el sftpcomando. Nuestro usuario se conectará a una cuenta SFTP llamada demoen el servidor FTP de acceso público ubicado en test.trebex.net.

Cuando se conectan, se les informa que se ha establecido la conexión. También se les informa que no se puede verificar la autenticidad del anfitrión. Esto es normal para la primera conexión con un nuevo host. Ellos presionan «y» para aceptar la conexión.

Debido a que el nombre de la cuenta de usuario ( demo) se pasó en la línea de comandos, no se les solicita el nombre de la cuenta de usuario. Solo se les solicita la contraseña. Esto se ingresa, verifica y acepta, y se les presenta el sftp>mensaje.

sftp [email protected]

conectarse a un sitio sftp en una ventana de terminal

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

  • Para eliminar un uso de archivo rm(usos FTP delete)
  • Para eliminar varios archivos, utilice rm(usos FTP mdelete)
  • Para moverse al directorio principal, use cd ..(usos FTP cdup)

Nuestro usuario ha utilizado algunos comandos en su sesión SFTP. Tienen uso lspara listar los archivos y cdpara cambiar al directorio pub. Han utilizado pwdpara imprimir el directorio de trabajo.

comandos sftp en una ventana de terminal

Hay otras opciones para transferir archivos en el mundo Linux, en particular scp( copia segura ), pero aquí nos hemos centrado en FTP y SFTP. Si se utilizan en los escenarios aplicables, estos dos comandos le servirán a usted y a sus necesidades de almacenamiento y recuperación de archivos.