GNU/Linux >> Tutoriales Linux >  >> Linux

SSHFS:Montaje de un sistema de archivos remoto a través de SSH

SSHFS en sí mismo es un sistema de archivos en el espacio del usuario (FUSE) que utiliza el Protocolo de transferencia de archivos SSH (SFTP) para montar un sistema de archivos remoto. El sshfs El comando es una herramienta de cliente para usar SSHFS para montar un sistema de archivos remoto desde otro servidor localmente en su máquina.

Nota: El espacio de usuario (o espacio de usuario) es todo el código del sistema operativo que se ejecuta fuera del Kernel.

Si bien no tiene el mismo rendimiento que un sistema de archivos local, sshfs es una manera fácil de trabajar con archivos en otra computadora usando programas y herramientas locales. Lo mejor de todo, sshfs puede ser utilizado por usuarios sin privilegios en la máquina local (de hecho, se recomienda no ser root o elevar los privilegios de uno mientras usa sshfs ), y no requiere ningún software especial en la máquina remota que no sea SSH con SFTP habilitado, una configuración común.

Instalando sshfs

El sshfs La herramienta está disponible en los repositorios estándar de la mayoría de las distribuciones y se instala más fácilmente usando el administrador de paquetes de esa distribución. Para Fedora, instalando sshfs es tan fácil como:dnf install fuse-sshfs . En sistemas basados ​​en Debian, el paquete es simplemente sshfs .

Montar un sistema de archivos remoto

Una vez sshfs está instalado, montar un sistema de archivos remoto de forma segura a través de SSH es sencillo. De acuerdo con sshfs página de manual (man sshfs ), la sintaxis del comando es: 

sshfs [user@]host:[dir] mountpoint [options]

Esa sintaxis debería resultarle familiar a cualquiera que haya usado SSH o SCP antes.

Echemos un vistazo a sshfs en acción. Primero, cree (o seleccione un directorio existente) para usarlo como punto de montaje. Tenga en cuenta que el usuario local que invoca el sshfs El comando debe tener acceso de escritura al punto de montaje. Como se desaconseja el uso de la cuenta raíz, esa política podría hacer que se use ~/mnt preferible a /mnt . Entonces, solo es cuestión de usar el sshfs Comando para conectarse a la máquina remota usando sus credenciales SSH y especificando qué ubicación remota montar en el punto de montaje:

# Create the mountpoint
[chris@marvin ~ ]$ mkdir ~/mnt

# Invoke SSHFS with your SSH credentials and the remote location to mount
[chris@marvin ~ ]$ sshfs chris@zaphod:/home/chris/Pictures ~/mnt

# Access the newly mounted filesystem
[chris@marvin ~ ]$ ls ~/mnt/
'Screenshot from 2019-11-17 19-34-34.png'

Nota: Dato curioso, sshfs no expande ~ en una máquina remota al directorio de inicio del usuario.

Se puede acceder a los sistemas de archivos montados y usarlos de la misma manera que un sistema de archivos local, tanto desde la línea de comandos como usando otras herramientas:

Cuando haya terminado con el sistema de archivos remoto, desmóntelo con fusermount comando:

# Unmount the remote FS
[chris@marvin ~ ]$ fusermount -u ~/mnt

Opciones de montaje

En la mayoría de los casos, el sshfs predeterminado El comando se puede usar tal cual, pero sshfs está lejos de ser un simple comando. Hay toneladas de opciones y banderas que cubren una variedad de situaciones, incluidas las opciones de SSH y SFTP, compresión, etc. Consulte sshfs manual (man sshfs ) para obtener más detalles sobre lo que está disponible.

Sin embargo, una de las opciones más útiles es reconnect. , que permite al cliente restablecer la conexión con el sistema remoto si se interrumpe:

# Use "-o reconect" to allow the client to reconnect
[chris@marvin ~ ]$ sshfs chris@zaphod:/home/chris/Pictures ~/mnt -o reconnect

Montar un sistema de archivos remoto al iniciar

El sshfs El comando también se puede usar en el /etc/fstab del sistema cliente archivo para montar automáticamente el sistema de archivos remoto. Use el fstab normal sintaxis, incluidas las opciones requeridas, y use sshfs en lugar del tipo de sistema de archivos:

# file: /etc/fstab
chris@zaphod:/home/chris/Pictures /home/chris/mnt sshfs

Tenga en cuenta que usar sshfs con fstab el montaje de archivos en el sistema de archivos se debe realizar como raíz, por lo que se deben realizar los ajustes apropiados para las credenciales de SSH y se deben tomar las precauciones adecuadas.

El punto final de transporte no está conectado

Es posible que reciba un Transport endpoint is not connected error cuando la conexión se interrumpe (por ejemplo, si la máquina cliente cambia de red o se suspende). En este caso, desmonte el sistema de archivos con fusermount comando, como se describe arriba:

[chris@marvin ~ ]$ ls ~/mnt
ls: cannot access '/home/chris/mnt': Transport endpoint is not connected
[chris@marvin ~ ]$ fusermount -u ~/mnt

Con suerte, este artículo le dio los conceptos básicos necesarios para trabajar con sshfs . Es una gran herramienta para trabajar con sistemas de archivos remotos de forma segura a través de una conexión SSH cifrada mientras se monta localmente en su computadora cliente. Y como se mencionó, gracias a sshfs al ser un sistema de archivos FUSE, incluso los usuarios sin privilegios pueden usarlo sin necesidad de que un administrador lo configure.

¿Quiere probar Red Hat Enterprise Linux? Descárguelo ahora gratis.


Linux
  1. Ocho formas de proteger el acceso SSH en su sistema

  2. SSHFS (Secure SHell FileSystem) – Monte de forma segura un sistema de archivos remoto a través de ssh

  3. compruebe si el archivo existe en el host remoto con ssh

  4. Archivo de registro de cola en varias máquinas a través de ssh

  5. Deshabilitar pitidos del sistema a través de SSH

Cómo ejecutar comandos de Linux en un sistema remoto a través de SSH

Cómo usar SSHFS para montar directorios remotos sobre SSH

Inicio automático de la sesión de Tmux en el sistema remoto al iniciar sesión a través de SSH

Cómo montar un sistema de archivos Linux remoto usando SSHFS

Use el archivo de configuración SSH para administrar las conexiones SSH a varios servidores remotos

Cómo usar el montaje SSHFS con directorios remotos a través de SSH