
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.txt
En 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:00
Esta 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:00
Si 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:00
Transferir 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.txt
Arriba, 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.txt
Si 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.txt
envolver
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.