Cómo usar el comando SFTP para transferir archivos en Linux

27 feb 2021 4 min di lettura
Cómo usar el comando SFTP para transferir archivos en Linux
Indice dei contenuti

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

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.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.