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.
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'
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.