Cómo transferir archivos en servidores remotos usando comandos SFTP en Linux

SFTP es un protocolo que ofrece un canal privado y seguro para la transferencia de archivos entre sistemas mediante cifrado. Existe una idea errónea sobre el acrónimo SFTP, y algunos piensan que significa Protocolo seguro de transferencia de archivos. Significa Protocolo de transferencia de archivos SSH. Donde en ‘FTPS’ es diferente, el cliente FTPS primero verificará si el certificado del servidor ftps es confiable y usará el protocolo Secure Sockets Layer (TLS). Es bueno leer sobre cómo configurar VSFTPD SFTP con SSL / TLS en Ubuntu 18.04

Se puede perdonar pensar que SFTP y FTP son similares en términos de funcionalidad, pero los dos emplean protocolos variados. Por lo tanto, no puede utilizar un cliente FTP estándar para conectarse a un servidor SFTP. En esta guía, nos centraremos en los comandos SFTP más utilizados.

Leer también: 12 comandos lftp para administrar archivos con ejemplos

La aplicación estándar de SFTP se ejecuta en una interfaz de comando dentro de su propio entorno. Por eso, en la mayoría de los casos, notará que la interfaz del programa cambia al indicador sftp>. En el momento en que haya invocado la sesión SFTP, los comandos habituales del sistema no se ejecutarán a menos que los llame utilizando un lenguaje específico que esté en el estándar de línea de comandos SFTP.

No todas las computadoras pueden procesar comandos SFTP. Puede optar por utilizar la versión de interfaz gráfica de SFTP o la línea de comandos según el sistema operativo que esté utilizando. La interfaz GUI requiere que instale una utilidad SFTP.

En este artículo, lo guiaremos a través de algunos ejemplos de comandos SFTP que puede usar a través de la línea de comandos de Unix / Linux.

Cómo conectarse con SFTP

El protocolo SSH que se utiliza para establecer la comunicación es el mismo que requiere un canal SFTP. La mayoría de la gente prefiere usar contraseñas guardadas configuradas como predeterminadas, pero yo recomendaría el uso de claves SSH que puede usar cuando necesite acceder a cualquier sistema.

Para iniciar una sesión SFTP, necesita un nombre de usuario y el nombre de host remoto. Alternativamente, puede usar la dirección IP del nombre de host en el indicador como se muestra a continuación:

~ # sftp [email protected]
[email protected]'s password:
Connected to [email protected].

En lo de arriba example, si hubiera una conexión que permita el procesamiento del comando anterior, esperaría una solicitud de contraseña antes de obtener acceso.

1) Cómo obtener ayuda en el momento oportuno

Si no tiene ni idea del tipo o formato que se puede utilizar en una línea de comandos SFTP, utilice el “?” o “ayuda” en el mensaje de la siguiente manera

sftp ?

2) Confirmar el directorio de trabajo

Usando el comando lpwd dará más información sobre el directorio de trabajo. El pwd se utiliza para comprobar el directorio de trabajo remoto.

sftp> lpwd

Producción

Local working directory: /root

sftp> pwd

Producción

Remote working directory: /upload

3) Listado de archivos

En el símbolo del sistema SFTP, enumera los archivos locales y remotos utilizando diferentes comandos.

Listado remoto

sftp> ls

Listado local

sftp> lls

4) Carga de archivos

La carga se puede realizar colocando uno o varios archivos en el host remoto.

Archivo único en el uso del host remoto,

sftp> put Hello-World.txt

Producción

Uploading Hello-World.txt to /upload/Hello-World.txt
Hello-World.txt

Varios archivos en el host remoto

sftp> mput *.txt

Producción

Uploading Hello-World.txt to /upload/Hello-World.txt
Hello-World.txt 100% 0 0.0KB/s 00:00
Uploading file1.txt to /upload/file1.txt
file1.txt 100% 0 0.0KB/s 00:00
Uploading file2.txt to /upload/file2.txt
file2.txt 100% 0 0.0KB/s 00:00
Uploading file3.txt to /upload/file3.txt
file3.txt 100% 0 0.0KB/s 00:00
Uploading file4.txt to /upload/file4.txt
file4.txt 100% 0 0.0KB/s 00:00

5) Descarga de archivos

Podrá descargar uno o varios archivos en una ruta o sistema local.

sftp> get file1.pdf

Producción

Fetching /upload/file1.pdf to file1.pdf

Descargar varios archivos en una ruta o sistema local

sftp> mget * .pdf

Producción

Fetching /upload/file1.pdf to file1.pdf
Fetching /upload/file2.pdf to file2.pdf
Fetching /upload/file3.pdf to file3.pdf
Fetching /upload/file4.pdf to file4.pdf
Fetching /upload/file5.pdf to file5.pdf

Es evidente que al descargar un archivo en el sistema local se hace con el mismo nombre. Cuando desee utilizar un nombre diferente en la descarga de un archivo remoto, el nombre debe especificarse al final del comando.

6) Cambio de directorios

En el servidor remoto, usa el comando,

sftp> cd test

En la máquina local, usa el comando,

sftp> lcd Documents

7) Creando directorios

Es posible crear directorios en rutas remotas y locales

Un nuevo directorio en la ruta local.

sftp> mkdir test

Un nuevo directorio en un host remoto

sftp> lmkdir Documents

8) Eliminar directorios

Eliminar un directorio o archivo en hosts remotos

Eliminar un archivo en hosts remotos

sftp> rm Report.xls

Eliminar directorio en hosts remotos

sftp> rmdir Department

Nota: este comando solo funcionará si el directorio de destino está vacío

9) Salir de la consola de comandos

¡El signo de exclamación! (conocido como comando en este caso) se usa para salir del símbolo del sistema SFTP como se muestra a continuación example.

sftp>!

[root@sftp ~]# exit
Shell exited with status 1
sftp>

Por simple que parezca, SFTP es una herramienta muy poderosa que se utiliza para administrar servidores y administrar transferencias de archivos entre hosts. La utilidad se puede utilizar tanto en servidores remotos como locales.

Leer también:

  • Cómo usar el comando SCP para una transferencia de archivos / directorios en Linux