
No te ofendas, pero ¿sigues usando el mismo antiguo estándar FTP (Protocolo de transferencia de archivos) para intercambiar archivos desde sistemas remotos?
Han pasado cinco años desde que apareció FTP, y ahora tenemos una alternativa más adecuada que tiene buenos algoritmos de seguridad y no compromete la velocidad.
Sinónimo de SFTP (Secure File Transfer Protocol) es una de las aplicaciones más receptivas del mercado que proporciona una conexión segura para intercambiar archivos de forma remota. Funciona sobre el protocolo SSH, que es conocido por su seguridad, y utiliza el mismo protocolo y puerto.
Aunque muchas herramientas y aplicaciones de GUI están disponibles en el sistema operativo, hoy las demostraremos utilizando el enfoque CLI clásico.
Instalar en pc
Para comenzar con SFTP, debe tener ssh configurado en sus sistemas locales y remotos. Si ninguno de los sistemas tiene SSH instalado, utilice el enlace de referencia a continuación.
leer: Cómo instalar el servidor OpenSSH en Ubuntu
leer: ¿Cómo proteger el servidor OpenSSH?
Ahora ejecute el siguiente comando para verificar si se está ejecutando.
$ sftp
usage: sftp [-46aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
[-D sftp_server_path] [-F ssh_config] [-i identity_file]
[-J destination] [-l limit] [-o ssh_option] [-P port]
[-R num_requests] [-S program] [-s subsystem | sftp_server]
destination
Cómo conectarse a SFTP
Asegúrese de que ssh se esté ejecutando como un servicio en segundo plano en el sistema remoto para establecer la conexión. Después de eso, tome nota del nombre de usuario del sistema remoto y su IP de host o nombre de dominio.
Una vez que tenga el nombre de usuario y la IP/dominio, use el siguiente comando en el sistema local para conectarse al sistema remoto.
$ sftp [email protected]
The authenticity of host '192.168.0.106 (192.168.0.106)' can't be established.
ED25519 key fingerprint is SHA256:N1/BpC453dvqVhXCJ0FCZIQfiXIdHkLd6oq361jcCPs.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?No olvide reemplazar el nombre de usuario y el host arriba.ahora presiona «Sí» Permita que la información del host se guarde en el sistema local.
Para usar un puerto que no sea el predeterminado 22 al configurar el servidor ssh remoto, use «-PAGS» banderas para especificar puertos personalizados, como se muestra a continuación.
$ sftp -P 22 [email protected]Ahora, si tiene claves ssh configuradas en el sistema remoto (recomendado), no le pedirá la contraseña de usuario; de lo contrario, le pedirá la contraseña de usuario del sistema remoto para la autenticación, como se muestra a continuación.
Warning: Permanently added '192.168.0.106' (ED25519) to the list of known hosts.
[email protected]'s password:Ingrese la contraseña de usuario para el sistema remoto (por ejemplo: trendoceans).Luego se autenticará y dará «sftp>» El terminal se comunica con el servidor remoto como se muestra en la siguiente figura.
Connected to 192.168.0.106.
sftp>Descargar archivos desde servidores remotos
Ahora que está conectado al sistema remoto, puede comenzar a descargar archivos del servidor.Para transferir archivos de remoto a local usaremos get comando, que nos ayuda a descargar archivos de sistemas remotos.
corramos ls El comando enumera todos los archivos y directorios en mi servidor remoto como se muestra a continuación.
sftp> ls
Desktop Documents Downloads Music Pictures Public Templates Videos to.txtEn este momento, estoy en mi directorio de inicio en el servidor.puedes usarlo PWD Comando para comprobar.
Descarguemos usando el siguiente comando «a.txt» del sistema remoto a mi sistema local.
sftp> get to.txt
Fetching /home/trendoceans/to.txt to to.txt
to.txt 100% 18 15.0KB/s 00:00Esta get to.txt El comando descargará el archivo al directorio de trabajo actual local, que es el directorio antes de conectarse al servidor.
Si desea descargar el archivo en otro lugar, especifique la ruta como se muestra a continuación.
sftp> get to.txt Documents/
Fetching /home/trendoceans/to.txt to Documents/to.txt
to.txt 100% 18 13.9KB/s 00:00Si está descargando un directorio con muchos archivos, no un solo archivo.Entonces puedes usar "-r" logotipo junto con get comando, como se muestra a continuación.
sftp> get -r Pictures/
Fetching /home/trendoceans/Pictures/ to Pictures
Retrieving /home/trendoceans/Pictures
Screenshot.png 100% 89KB 9.9MB/s 00:00Transferir archivos locales a sistemas remotos
Para cargar cualquier archivo desde su sistema local a un sistema remoto, debe usar put Pedido.trabajo put muy similar get Los comandos son ligeramente diferentes.
en el interior put comando, debe especificar la ruta del archivo local y luego cargarlo en el servidor, como se muestra a continuación.
sftp> put file.txt
Uploading file.txt to /home/trendoceans/file.txt
file.txt 100% 0 0.0KB/s 00:00
sftp> ls
Desktop Documents Downloads Music Pictures Public Templates Videos file.txt image.jpg to.txtArriba, puedes ver «archivo.txt» Cargue en el directorio de inicio remoto. Si no especifica ningún objetivo en el servidor remoto, en su mayoría cargará archivos en el directorio de inicio.
Como se muestra en la figura a continuación, para cambiar la ruta de carga, especifíquela después de la ruta del archivo local.
sftp> put file.txt Documents/
Uploading file.txt to /home/trendoceans/Documents/file.txt
file.txt 100% 0 0.0KB/s 00:00
sftp> ls Documents/
Documents/file.txtSi está cargando una carpeta, utilice «-r» Indicador para cargar directorios de forma recursiva desde un servidor local a un servidor remoto, como se muestra a continuación.
sftp> put -r dir
Uploading dir/ to /home/trendoceans/dir
Entering dir/
file.txt 100% 0 0.0KB/s 00:00
sftp> ls
Desktop Documents Downloads Music Pictures Public Templates Videos dir file.txt image.jpg
to.txtenvolver
Espero que esto le haga cambiar de opinión acerca de sftp, pero si todavía está atascado con el antiguo protocolo FTP estándar, le recomendamos que solo lo use si confía en la red.
Mente técnica innovadora con 10 años de experiencia trabajando como programador informático, desarrollador web e investigador de seguridad. Capacidad para utilizar diversas tecnologías y soluciones de software, así como gestionar bases de datos.








