SFTP (Protocolo de transferencia de archivos SSH) es un protocolo de archivo seguro que se utiliza para acceder, administrar y transferir archivos a través de un transporte SSH cifrado.
En comparación con el protocolo FTP tradicional, SFTP ofrece toda la funcionalidad de FTP, pero es más seguro y fácil de configurar.
A diferencia de SCP, que solo admite transferencias de archivos, SFTP le permite realizar una variedad de operaciones en archivos remotos y reanudar las transferencias de archivos.
En este tutorial, le mostraremos cómo usar Linux sftp
comando.
Antes de comenzar #
Para poder transferir archivos a través de SFTP, debe tener permiso de escritura en el sistema remoto.
Al transferir archivos grandes, se recomienda ejecutar sftp
comando dentro de una pantalla o tmuxsession.
El directorio desde donde ejecuta el sftp
comando es el directorio de trabajo local.
Estableciendo una conexión SFTP #
SFTP funciona en un modelo cliente-servidor. Es un subsistema de SSH y admite todos los mecanismos de autenticación SSH.
Para abrir una conexión SFTP a un sistema remoto, use el sftp
comando seguido del nombre de usuario del servidor remoto y la dirección IP o nombre de dominio:
sftp remote_username@server_ip_or_hostname
Si se está conectando al host mediante la autenticación de contraseña, se le pedirá que ingrese la contraseña de usuario.
Una vez conectado, se le presentará el sftp
y puede comenzar a interactuar con el servidor remoto:
Connected to remote_username@server_ip_or_hostname.
sftp>
Si el servidor SSH remoto no está escuchando en el puerto predeterminado 22, use -P
opción para especificar el puerto SFTP:
sftp -P custom_port remote_username@server_ip_or_hostname
Comandos SFTP #
La mayoría de los comandos SFTP son similares o idénticos a los comandos de shell de Linux.
Para obtener una lista de todos los comandos SFTP disponibles, escriba help
, o ?
.
help
Esto generará una larga lista de todos los comandos disponibles, incluida una breve descripción de cada comando:
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
...
...
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
Navegando con SFTP #
Cuando inicia sesión en el servidor remoto, su directorio de trabajo actual es el directorio de inicio del usuario remoto. Puede comprobarlo escribiendo:
pwd
Remote working directory: /home/remote_username
Para listar los archivos y directorios, use el ls
comando:
ls
Para navegar a otro directorio, use el cd
dominio. Por ejemplo, para cambiar a /tmp
directorio que escribiría:
cd /tmp
Los comandos anteriores se utilizan para navegar y trabajar en la ubicación remota.
El shell SFTP también proporciona comandos para la navegación local, la información y la gestión de archivos. Los comandos locales tienen el prefijo l
.
Por ejemplo, para imprimir el directorio de trabajo local, escribiría:
cd lpwd
Local working directory: /home/local_username
Transferir archivos con SFTP #
SFTP le permite transferir archivos entre dos máquinas de forma segura.
Si está trabajando en una máquina de escritorio, puede usar un cliente GUI SFTP como WinSCPor FileZilla para conectarse al servidor remoto y descargar o cargar archivos.
El sftp
El comando es útil cuando trabaja en un servidor sin GUI y desea transferir archivos o realizar otras operaciones en los archivos remotos.
Descarga de archivos con el comando SFTP #
Para descargar un solo archivo desde el servidor remoto, use el get
comando:
get filename.zip
La salida debería verse así:
Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip 100% 24MB 1.8MB/s 00:13
Al descargar archivos con sftp
, los archivos se descargan en el directorio desde el que escribió el sftp
comando.
Si desea guardar el archivo descargado con un nombre diferente, especifique el nuevo nombre como segundo argumento:
get filename.zip local_filename.zip
Para descargar un directorio desde el sistema remoto, use el recursivo -r
opción:
get -r remote_directory
Si la transferencia de un archivo falla o se interrumpe, puede reanudarla mediante reget
comando.
La sintaxis de reget
es la misma que la sintaxis de get
:
reget filename.zip
Subir archivos con el comando SFTP #
Para cargar un archivo desde la máquina local al servidor SFTP remoto, use el put
comando:
put filename.zip
La salida debería verse así:
Uploading filename.zip to /home/remote_username/filename.zip
filename.zip 100% 12MB 1.7MB/s 00:06
Si el archivo que desea cargar no se encuentra en su directorio de trabajo actual, use la ruta absoluta al archivo.
Cuando se trabaja con put
puede usar las mismas opciones que están disponibles con get
comando.
Para cargar un directorio local, debe escribir:
put -r locale_directory
Para reanudar una carga interrumpida:
reput filename.zip
Manipulación de archivos con SFTP #
Por lo general, para realizar tareas en un servidor remoto, se conectaría a él a través de SSH y haría su trabajo usando la terminal de shell. Sin embargo, en algunas situaciones, es posible que el usuario solo tenga acceso SFTP al servidor remoto.
SFTP le permite realizar algunos comandos básicos de manipulación de archivos. A continuación se muestran algunos ejemplos de cómo usar el shell SFTP:
-
Obtenga información sobre el uso del disco del sistema remoto:
df
Size Used Avail (root) %Capacity 20616252 1548776 18002580 19067476 7%
-
Cree un nuevo directorio en el servidor remoto:
mkdir directory_name
-
Cambiar el nombre de un archivo en el servidor remoto:
rename file_name new_file_name
-
Eliminar un archivo en el servidor remoto:
rm file_name
-
Eliminar un directorio en el servidor remoto:
rmdir directory_name
-
Cambiar los permisos de un archivo en el sistema remoto:
chmod 644 file_name
-
Cambiar el propietario de un archivo en el sistema remoto:
chown user_id file_name
Debe proporcionar la ID de usuario al
chown
ychgrp
comandos. -
Cambie el propietario del grupo de un archivo remoto con:
chgrp group_id file_name
Una vez que haya terminado con su trabajo, cierre la conexión escribiendo bye
o quit
.
Conclusión #
En este tutorial, le mostramos cómo usar el sftp
comando para descargar y cargar archivos a su servidor SFTP remoto.
También puede configurar una autenticación basada en clave SSH y conectarse a sus servidores Linux sin ingresar una contraseña. Si se conecta regularmente a los mismos sistemas, puede simplificar su flujo de trabajo definiendo todas sus conexiones en el archivo de configuración de SSH.
Siéntase libre de dejar un comentario si tiene alguna pregunta o comentario.