Qué es y cómo utilizar SFTP (Protocolo de transferencia de archivos SSH)
FTP es el método estándar para transferir archivos u otros datos entre computadoras, pero se está volviendo cada vez más obsoleto, debido al entorno actual consciente de la seguridad. Afortunadamente, ahí es donde entra SFTP, que es particularmente útil para los usuarios de hosting VPS.
En esta guía, te mostraremos cómo usar SFTP para la transferencia segura de archivos, hablaremos sobre otros comandos útiles y explicaremos más sobre cómo funciona.
Tabla de Contenidos
¿Qué es SFTP?
SFTP, o Secure File Transfer Protocol, es una forma mucho más segura de mover archivos. El protocolo SSH, admite el cifrado y otros métodos de seguridad utilizados para proteger mejor las transferencias de archivos.
Es el único protocolo seguro de transferencia de archivos que protege contra ataques en cualquier punto del proceso de transferencia de datos, lo que lo convierte en el protocolo preferido.
Durante la transferencia de archivos, todos los datos se dividen en paquetes y se envían a través de una única conexión segura.
La información confidencial se cifrará y se volverá ilegible cuando se transfiera entre el cliente y el servidor. En otras palabras, el contenido original (texto sin formato) será reemplazado por una cadena de caracteres incoherentes (texto cifrado).
Solo el destinatario con la clave de descifrado requerida podrá ver el contenido original. Esto evita cualquier acceso no autorizado durante la transferencia de archivos.
El protocolo de transferencia de archivos (FTP) tiene dos canales diferentes para intercambiar datos: el canal de comando y el canal de datos. Por el contrario, el protocolo SFTP tiene solo un canal cifrado donde los datos se intercambian en paquetes formateados cifrados.
¿Cómo conectarte usando SFTP?
SFTP es un subsistema de SSH. Por lo tanto, admite todos los métodos de autenticación SSH. Si bien es más fácil configurar y usar la autenticación de contraseña, es mucho más conveniente y seguro crear claves SSH para un inicio de sesión SFTP sin contraseña.
Una vez estés listo para avanzar, sigue los pasos a continuación para conectarte con SFTP:
- Verifica tu acceso SSH usando uno de estos comandos:
ssh user@server_ipaddress ssh user@remotehost_domainname
- Una vez hecho esto, abandona la sesión si no se produjeron errores.
- Inicia una conexión SFTP con los siguientes comandos:
sftp user@server_ipaddress sftp user@remotehost_domainname
- Si estás usando un puerto SSH personalizado, usa uno de estos comandos para cambiar el puerto SFTP:
sftp -oPort=customport user@server_ipaddress sftp -oPort=customport user@remotehost_domainname
- Así es como debería verse:
sftp -oPort=49166 user@31.220.57.32
Una vez que estés conectado, verás un mensaje SFTP.
Cómo transferir archivos usando SFTP
Aquí te mostraremos cómo transferir archivos remotos al sistema local usando SFTP y viceversa.
Consejo profesional
También puedes transferir tus archivos utilizando clientes SFTP, como WinSCP o FileZilla.
Transferencia de archivos remotos de un servidor al sistema local
Para empezar, verifica qué directorio de trabajo local y qué directorio remoto estás usando. Para hacer esto, usa estos comandos SFTP:
sftp> lpwd Local directory: /LocalDirectory sftp> pwd Remote directory: /RemoteDirectory
Ahora, veamos cómo transferir un archivo desde un servidor remoto a tu máquina local usando el comando get. Aquí está la sintaxis básica del comando get:
get /RemoteDirectory/filename.txt
Por ejemplo, para copiar el archivo /etc/xinetd.conf desde el servidor remoto a tu máquina local, usarías:
get /etc/xinetd.conf
Una vez se complete la descarga, verás que el archivo xinetd.conf está en el directorio /user/home de tu máquina local.
Para descargar varios archivos con SFTP, usa el comando mget. Para pasar todos los archivos que tienen la extensión .conf de un directorio llamado /etc a tu directorio de trabajo actual, usarás el siguiente comando:
mget /etc/*.conf
Después de la descarga, encontrarás todos los archivos *.conf en el directorio /user/home de tu máquina local.
Transferencia de archivos desde la máquina local a un servidor remoto
Para copiar un archivo de la máquina local al servidor remoto, usa el comando get nuevamente. En este caso, la sintaxis del comando get será:
get file.txt /RemoteDirectory
Para mover el archivo example.txt de una máquina local a la máquina remota, ingresa el siguiente comando:
put /home/user-name/example.txt /root
Ahora encontraremos el archivo en el directorio raíz del servidor remoto. También puedes intentar transferir varios archivos con el comando mput. Funciona casi igual que mget:
mput /home/user-name/*.txt /root
Este comando movería todos los archivos con la extensión .txt en /home/user-name desde la máquina local al directorio remoto /root.
Consejo profesional
Ten en cuenta que para descargar y cargar los archivos con SFTP, deberás escribir el comando put o get y presionar la tecla TAB.
Comandos para navegar con SFTP
Algunos comandos se pueden usar para navegar a través de los servidores locales y remotos de manera más eficiente con SFTP. Son similares a los que usarías en la barra de comandos de Linux.
Por ejemplo, el comando pwd siempre es útil para saber en qué directorio de trabajo te encuentras actualmente.
sftp> pwd Remote Directory: /RemoteDirectory
o
sftp> lpwd Local Directory: /LocalDirectory
También puedes mostrar la lista de archivos y directorios que estás utilizando para el directorio remoto:
ls
Del mismo modo, para el directorio de trabajo local:
lls
Por ejemplo, el resultado se verá similar a esto:
Pictures Templates Media Text.txt Documents
Para cambiar de un directorio de trabajo remoto a otro directorio de trabajo local, ingresa los siguientes comandos:
cd nombre_del_directorio lcd nombre_del_directorio
Finalmente, usa ! y exit para salir de los comandos, volver al shell local y salir de SFTP.
Conceptos básicos del mantenimiento de archivos mediante SFTP
Con SFTP, también puedes administrar directorios y archivos mediante comandos específicos.
Para verificar el espacio en disco del servidor remoto en gigabytes, usa la función df así:
df -h
A continuación, se muestra un ejemplo del resultado:
Filesystem Size Used Avail Use% Mounted on /dev/ploop29212p1 59G 2.5G 56G 5% / none 1.5G 0 1.5G 0% /sys/fs/cgroup none 1.5G 0 1.5G 0% /dev tmpfs 1.5G 0 1.5G 0% /dev/shm tmpfs 1.5G 568K 1.5G 1% /run tmpfs 308M 0 308M 0% /run/user/0
Utiliza el comando mkdir para crear un nuevo directorio en el servidor local y remoto:
mkdir nombre_del_directorio lmkdir nombre_del_directorio
Puedes eliminar un directorio del servidor remoto usando el comando rmdir:
rmdir nombre_del_directorio
Así mismo, cambiar el nombre de un archivo remoto también es bastante sencillo:
rename viejo_nombredelarchivo nuevo_nombredelarchivo
Si deseas eliminar un archivo remoto, usa el comando rm:
rm nombredearchivo
Si bien el comando chown se usa para reemplazar al propietario de un archivo:
chown userid nombredearchivo
userid puede ser un nombre de usuario o un ID de usuario numérico. Por ejemplo:
chown UsuarioUno NombredeArchivo chown 1234 NombredeArchivo
chgrp se usa para cambiar el propietario del grupo de un archivo:
chgrp groupid nombredearchivo
Por ejemplo:
chgrp NuevoGrupo ArchivoEjemplo
Finalmente, necesitarás usar el comando interactivo chmod para cambiar el permiso de un archivo:
chmod 764 NombredeArchivo
En este ejemplo, el valor de tres dígitos representa el usuario, el grupo y otros usuarios del archivo.
En cuanto a los permisos para leer (r), escribir (w) y ejecutar (x), sus valores son 4, 2, 1, respectivamente. 0 también se puede utilizar para no otorgar permisos.
Para asignar permisos, simplemente calcula los valores totales para cada clase de usuario. A continuación, te mostramos un desglose del ejemplo:
chmod ugo NombredeArchivo # u representa al Usuario que podrá leer, escribir y ejecutar el archivo. # g es para Grupos, aquí le hemos dado permiso para escribir y ejecutar el archivo. # o es que Otros solo podrán leer el archivo.
Lista de comandos SFTP útiles
Si necesitas una hoja de comandos, aquí hay una lista de todos los comandos SFTP disponibles. Puedes encontrar esta lista tú mismo simplemente ingresando los comandos help o ?, ambos brindan el mismo resultado.
bye Salir de sftp cd path Cambiar el directorio remoto a ‘path' chgrp [-h] grp path Cambiar el grupo del archivo 'path' a 'grp' chmod [-h] mode path Cambiar los permisos del archivo 'path' a 'mode' chown [-h] own path Cambiar el propietario del archivo 'path' a 'own' (propio) df [-hi] [path] Muestra las estadísticas del directorio actual o sistema de archivos que contienen 'path' exit Salir de sftp get [-afpR] remote [local] Descargar archivo help Mostrar este texto de ayuda lcd path Cambiar el directorio local a 'path' lls [ls-options [path]] Muestra la lista del directorio local lmkdir path Crear directorio local ln [-s] oldpath newpath Link a archivo remoto (-s para symlink) lpwd Mostrar directorio de trabajo local ls [-1afhlnrSt] [path] Muestra la lista de directorios remotos lumask umask Establece la umask local en 'umask' mkdir path Crear directorio remoto progress Alternar la visualización del medidor de progreso put [-afpR] local [remote] Cargar archivo pwd Mostrar directorio de trabajo remoto quit Salir de sftp reget [-fpR] remote [local] Reanudar archivo de descarga rename oldpath newpath Renombrar archivo remoto reput [-fpR] local [remote] Reanudar archivo de carga rm path Eliminar archivo remoto rmdir path Eliminar directorio remoto symlink oldpath newpath Archivo remoto de symlink version Muestra la versión SFTP !command Ejecutar 'command' en el shell local ! Escapar al Shell local
Conclusión
Eso es prácticamente todo en cuanto a qué es SFTP y cómo utilizarlo para la transferencia segura de archivos. Esperamos que este tutorial te haya resultado útil.
Si tienes más preguntas, no dudes en dejar un comentario a continuación.
SFTP – Preguntas frecuentes
A continuación algunas de las preguntas más comunes sobre el protocolo de transferencia de archivos SFTP.
¿Qué relación hay entre FTPS y SSL?
FTPS es una extensión del protocolo FTP (File Transfer Protocol) que utiliza SSL (Secure Sockets Layer) para encriptar las transferencias de archivos, proporcionando así una capa adicional de seguridad en las comunicaciones entre el cliente y el servidor.
¿Cuál es el puerto de SFTP?
El puerto estándar utilizado por SFTP para establecer una conexión segura es el 22. Este puerto es el mismo utilizado por SSH, ya que SFTP se basa en las capacidades de seguridad de SSH para asegurar las transferencias de archivos.
Comentarios
March 26 2022
Excelente, muchas gracias me sirvio mucho la informacion.