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 utilizado 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 sftpuser@216.200.116.229 sftpuser@216.200.116.229's password: Connected to sftpuser@216.200.116.229.
En el ejemplo anterior, 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 de inmediato
Si no tiene 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. los 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 tanto en rutas remotas como 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 en el siguiente ejemplo.
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: