SFTP (SSH File Transfer Protocol) 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 más fácil de configurar.
a diferencia de SCP, que solo admite transferencias de archivos, el SFTP le permite realizar una serie de operaciones en archivos remotos y reanudar las transferencias de archivos.
en este tutorial, le mostraremos cómo usar el comando Linux sftp
.,
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 el comando sftp
dentro de una sesión de screen o tmux.
El Directorio desde donde se ejecuta el comando 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 soporta todos los mecanismos de autenticación SSH.
para abrir una conexión SFTP a un sistema remoto, utilice el comando sftp
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 conecta al host mediante autenticación con contraseña, se le pedirá que introduzca la contraseña de usuario.,
una vez conectado, se le presentará el símbolo del sistema 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 la opción -P
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 del shell de Linux.
Para obtener una lista de todos los disponibles SFTP comandos, 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 sftpcd 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 haya iniciado 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 comando ls
:
ls
para navegar a otro directorio, utilice el comando cd
. Por ejemplo, para cambiar el /tmp
directorio escriba:
cd /tmp
Los comandos anteriores se utilizan para desplazarse 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, escriba:
cd lpwd
Local working directory: /home/local_username
Transferencia de Archivos con SFTP #
SFTP le permite transferir archivos entre dos equipos de forma segura.
si está trabajando en una máquina de escritorio, puede usar un cliente SFTP GUI como WinSCP o FileZilla para conectarse al servidor remoto y descargar o cargar archivos.,
el comando sftp
es útil cuando trabaja en un servidor sin GUI y desea transferir archivos o realizar otras operaciones en los archivos remotos.,
descargar archivos con el comando SFTP #
para descargar un solo archivo desde el servidor remoto, use el comando get
:
get filename.zip
la salida debe ser algo como esto:
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 comando sftp
.,
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, utilice la opción recursiva -r
:
get -r remote_directory
si una transferencia de archivos falla o se interrumpe, puede reanudarla usando 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 máquina local al servidor SFTP remoto, utilice el comando put
:
put filename.zip
la salida debería ser algo como esto:
Uploading filename.zip to /home/remote_username/filename.zipfilename.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 utilizar las mismas opciones que están disponibles con el comando get
.
para cargar un directorio local, escribiría:
put -r locale_directory
para reanudar una carga interrumpida:
reput filename.zip
manipulaciones de archivos con SFTP #
normalmente, para realizar tareas en un servidor remoto, se conectaría a él a través de SSH y haría su trabajo utilizando el terminal shell. Sin embargo, en algunas situaciones, el usuario puede tener solo acceso SFTP al servidor remoto.,
SFTP le permite realizar algunos comandos básicos de manipulación de archivos.,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
Usted debe proporcionar el ID de usuario para el chown
y chgrp
comandos.,
Cambiar el grupo propietario de un archivo remoto con:
chgrp group_id file_name
una Vez que haya terminado con su trabajo, cerrar la conexión escribiendo bye
o quit
.
conclusión #
en este tutorial, le hemos mostrado cómo usar el comando sftp
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 SSH .
Deja una respuesta