Introducción
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 todas las funciones de FTP y es más fácil de configurar.
A diferencia del scp command
, que solo permite transferencias de archivos, el sftp
permite realizar una variedad de operaciones de archivos remotos y reanudar las transferencias de archivos.
En este tutorial, le mostraremos cómo usar el sftp
Prerrequisitos
Para transferir y administrar archivos a través de SFTP, debe tener permiso de escritura en el sistema remoto.
Al transferir archivos grandes, se recomienda que ejecute el comando sftp dentro de una pantalla o sesión tmux.
El directorio desde el que ejecuta el sftp
es el directorio de trabajo local.
Establecer 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.
Aunque la autenticación de contraseña tradicional está configurada de forma predeterminada y es más fácil de usar, si se conecta regularmente a su servidor a través de SSH /SFTP, se recomienda que cree claves SSH y configure un inicio de sesión SFTP sin contraseña.
Para abrir una conexión SFTP a un sistema remoto, use el sftp
seguido del nombre de usuario del servidor remoto y la dirección IP o el nombre de dominio:
sftp remote_username@server_ip_or_hostname
Si se está conectando a un host mediante autenticación de contraseña, se le pedirá que ingrese la contraseña del usuario.
Una vez conectado, aparecerá el sftp
y podrá comenzar a interactuar con la computadora remota:
Connected to remote_username@server_ip_or_hostname.
sftp>
Si el servidor SSH remoto no está escuchando en el puerto predeterminado 22, use la -oPort
para especificar el puerto alternativo:
sftp -oPort=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 que usaría en la línea de comandos de Linux.
Puede obtener una lista de todos los comandos SFTP disponibles escribiendo help
o ?
.
help
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 se conecta al servidor remoto, el directorio de trabajo actual es el directorio de inicio del usuario remoto. Puede verificar esto escribiendo:
pwd
Remote working directory: /home/remote_username
Para listar archivos y directorios, use el comando ls
ls
Para cambiar a otro directorio, use el cd
Por ejemplo, para cambiar al /tmp
, escriba:
cd /tmp
Los comandos anteriores se utilizan para navegar y trabajar en la ubicación remota.
El sftp
también proporciona comandos para la navegación local, la información y la administración de archivos. Los comandos locales están precedidos por la letra l
.
Por ejemplo, para imprimir el directorio de trabajo local, escriba:
cd lpwd
Local working directory: /home/local_username
Transferencia de archivos con SFTP
Con SFTP puede transferir archivos de forma segura entre dos máquinas.
Si está trabajando en una computadora de escritorio, puede usar un cliente SFTP GUI como WinSCP o FileZilla para conectarse al servidor remoto y descargar o cargar archivos.
El sftp
es útil cuando está trabajando en un servidor sin una GUI y desea transferir archivos o realizar otras operaciones en archivos remotos.
Descarga de archivos con el comando SFTP
Una vez que haya iniciado sesión en el servidor remoto, el directorio de trabajo actual es el directorio de inicio del usuario remoto.
Cuando descarga archivos con el sftp
, los archivos se descargan en el directorio desde el que se escribió el comando sftp
Para descargar un solo archivo desde el servidor remoto, use el comando get
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
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 del sistema remoto, use la -r
get -r remote_directory
Si la transferencia de un archivo falla o se interrumpe, se puede reanudar mediante el comando reget
La sintaxis de reget
es la misma que la sintaxis de get
:
reget filename.zip
Cargar archivos con el comando SFTP
Para cargar un archivo desde la computadora local al servidor SFTP remoto, use el comando put
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 el directorio de trabajo actual, use la ruta absoluta al archivo.
Cuando trabaje con put
, puede usar las mismas opciones disponibles con el comando get
Para cargar un directorio local, escriba:
put -r locale_directory
Para reanudar una carga interrumpida:
reput filename.zip
Manipulaciones de archivos con SFTP
Por lo general, para realizar tareas en un servidor remoto, se conecta a él a través de SSH y hace su trabajo utilizando el terminal de shell. Sin embargo, en algunas situaciones, es posible que el usuario solo tenga acceso SFTP al servidor remoto.
SFTP le permite ejecutar algunos comandos básicos de manipulación de archivos. A continuación, se muestran algunos ejemplos de cómo utilizar 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
Elimina un directorio en el servidor remoto:
rmdir directory_name
Cambie los permisos de un archivo en el sistema remoto:
chmod 644 file_name
Cambie el propietario de un archivo en el sistema remoto:
chown user_id file_name
Debe proporcionar el ID de usuario a los comandos chown
y chgrp
Cambie el propietario del grupo de un archivo remoto con:
chgrp group_id file_name
Cuando termine, cierre la conexión escribiendo bye
o quit
.
Conclusión
En este tutorial, le mostramos cómo usar el sftp
para descargar y cargar archivos a su servidor SFTP remoto.