SFTP es un protocolo de transferencia de archivos que utiliza SSH para asegurar los comandos y los datos que se transfieren entre el cliente y el servidor. Los datos transferidos con FTP estándar no están cifrados, lo que los hace vulnerables a escuchas furtivas, interferencias o falsificaciones.
En casi todos los casos, SFTP es preferible a FTP, debido a sus características de seguridad latentes y capacidad para acoplarse a una conexión SSH.
FTP es un protocolo inseguro (no encriptado) que sólo debe utilizarse en casos limitados o en redes de confianza.
De forma predeterminada, SFTP utiliza el protocolo SSH para autenticar y establecer una conexión segura. Debido a esto, los mismos métodos de autenticación están disponibles que están presentes en SSH.
Si se puede conectar a la máquina mediante SSH, generalmente podrá utilizar SFTP para gestionar archivos.
Prueba de acceso SSH con el comando siguiente:
ssh username@remote_hostname_or_IP
Si le funciona, puede salir escribiendo:
exit
Podemos establecer una conexión SSH a continuación, abra una sesión de SFTP usando esa conexión emitiendo el comando siguiente:
sftp username@remote_hostname_or_IP
Si se conecta remotamente, yel indicador cambiará a un símbolo del SFTP.
En primer lugar, vamos a orientarnos por averiguar qué directorio estamos en este momento en el sistema remoto:
pwd
Remote working directory: /home/demouser
Podemos ver el contenido del directorio actual del sistema remoto con otro familiar comando:
ls
Podemos acceder a otro directorio con el comando:
cd
Y también ir un pasado atras con el clásico:
cd ..
Transferencia de archivos remoto al sistema local
Si quisiéramos descargar del servidor remoto un archivo al folder desde el cual nos conectamos por SFTP ejecutamos el siguiente comando:
get remoteFile
El comando "get" también tiene algunos indicadores de opción. Por ejemplo, podemos copiar un directorio y todo su contenido especificando la opción recursiva:
get -r someDirectory
Podemos decir SFTP para mantener los permisos apropiados y los tiempos de acceso mediante el uso de la "-P" o la bandera "-p":
get -Pr someDirectory
La transferencia de archivos con el sistema remoto se lleva a cabo con la misma facilidad, pero con el comando apropiado de nombre "put":
put localFile
Las mismas funciones que trabajan con "get" se aplican a "put". Así que para copiar un directorio local entero, podemos usar:
put -r localDirectory
Una herramienta familiar que es útil cuando descargar y cargar archivos es el comando "df", el cual funciona de forma similar a la versión de línea de comandos. El uso de este es para revisar si hay suficiente espacio para completar las transferencias:
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda4 40G 1.8G 36G 5% /
tmpfs 16G 0 16G 0% /dev/shm
/dev/sda7 2.2T 797G 1.3T 39% /home
/dev/sda5 15G 170M 14G 2% /tmp
/dev/sda3 60G 12G 45G 22% /usr
/dev/sda2 197G 33G 155G 18% /var
Para cerrar la sesión de SFTP, escriba:
exit
Aunque SFTP es una herramienta simple, es muy útil para la administración de servidores y la transferencia de archivos entre ellos.
Si está acostumbrado a utilizar FTP o SCP para lograr sus transferencias, SFTP es una buena manera de aprovechar las fortalezas de ambos. Si bien no es apropiado para cada situación, es una herramienta flexible para tener como opción de respaldo.