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:
dfSize 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_nameDebe proporcionar la ID de usuario al
chownychgrpcomandos. -
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.