Cómo montar automáticamente un directorio SSHFS remoto al arrancar en Debian

Configuras un montaje SSHFS, confirmas que funciona, reinicias Debian y, de repente, el directorio remoto vuelve a estar vacío. El comando manual funcionó porque estabas conectado, la red ya estaba en línea y SSH podía solicitar una contraseña o la confirmación de la clave de host si era necesario. Los montajes al inicio del sistema no ofrecen esas ventajas.

La solución fiable consiste en hacer que la autenticación SSH no sea interactiva, crear una /etc/fstabentrada persistente e indicar a systemd que el sistema de archivos depende de la red. Esta guía comienza con la configuración más sencilla y funcional, y luego añade opciones para redes lentas y sesiones SSH interrumpidas. Los ejemplos utilizan user@server.example.com:/srv/datacomo directorio remoto y /mnt/remotecomo punto de montaje local.

La página de paquetes de Debian actualmente incluye SSHFS 3.7.3 para Debian 12 (Bookworm), y SSHFS utiliza el subsistema SFTP proporcionado por SSH. Consulte la página de paquetes de Debian SSHFS y el manual oficial de SSHFS . Las revisiones de los paquetes varían entre las versiones de Debian, pero el método de montaje de arranque que se describe a continuación se basa en el comportamiento estándar de fstab y systemd.

¿Por qué funciona un montaje SSHFS manualmente pero falla al arrancar el sistema?

La mayoría de los fallos se deben a tres causas. Primero, SSH puede requerir una contraseña, una frase de contraseña o la confirmación de la clave de host la primera vez. El proceso de arranque no dispone de una terminal donde pueda responder a estas solicitudes. Segundo, el montaje puede iniciarse antes de que la red o el DNS estén completamente operativos. Tercero, una conexión SSH de larga duración puede quedar inactiva tras una interrupción de la red.

La documentación de systemd de Debian explica que la _netdevopción fuerza a que un montaje se trate como un montaje de red. Los montajes de red se ordenan después de network-online.target. La misma documentación señala que /etc/fstablas entradas se convierten en unidades de montaje nativas de systemd al arrancar. Consulte systemd.mount(5) en Debian .

1. Instale SSHFS y cree el punto de montaje.

Instale el cliente SSHFS incluido y cree el directorio local que expondrá los archivos remotos:

sudo apt update
sudo apt install sshfs
sudo mkdir -p /mnt/remote

SSHFS está basado en FUSE, la interfaz de sistema de archivos en espacio de usuario de Linux. En Debian 12, el sshfspaquete depende de FUSE 3 y del cliente OpenSSH.

Terminal de Debian mostrando la actualización de apt, la instalación de SSHFS y la creación del directorio /mnt/remote.
Instale el paquete SSHFS y cree el directorio local que se convertirá en el punto de montaje.

2. Configura la autenticación SSH para que se ejecute sin necesidad de confirmación.

Para un montaje a nivel de sistema iniciado por systemd, es sencillo crear una clave dedicada propiedad del usuario root, ya que el asistente de montaje se ejecuta como root. Genere una sin contraseña solo si la máquina es de confianza y la clave está restringida a este propósito:

sudo ssh-keygen -t ed25519 -f /root/.ssh/sshfs_remote
sudo ssh-copy-id -i /root/.ssh/sshfs_remote.pub user@server.example.com

El segundo comando normalmente solicita la contraseña de la cuenta remota una sola vez. Luego, compruebe la identidad exacta de forma no interactiva:

sudo ssh -i /root/.ssh/sshfs_remote -o BatchMode=yes user@server.example.com true

Si el comando finaliza correctamente sin mostrar ningún mensaje, la autenticación está lista para el arranque. Si solicita confirmar la huella digital del servidor, conéctese interactivamente como root, verifique la huella digital con una fuente confiable y acéptela. No intente solucionar los errores de clave de host deshabilitando la verificación del host.

OpenSSH está documentado BatchMode=yesespecíficamente para scripts y trabajos por lotes, ya que desactiva las solicitudes de contraseña y confirmación. Las claves de host se comparan con el known_hostsarchivo del usuario. Consulte el manual de Debian ssh(1) y ssh_config(5) .

Terminal de Debian que muestra la creación de clave SSH, ssh-copy-id y una prueba de conectividad SSH en modo por lotes.
Prepare el acceso SSH basado en claves y verifique que la conexión se pueda establecer sin intervención del usuario.

3. Confirme manualmente el montaje SSHFS antes de editar fstab.

No depure el orden de arranque hasta que funcione el comando básico SSHFS. Monte el directorio una vez usando la misma clave:

sudo sshfs user@server.example.com:/srv/data /mnt/remote   -o IdentityFile=/root/.ssh/sshfs_remote   -o reconnect   -o ServerAliveInterval=15   -o ServerAliveCountMax=3

Comprueba que puedes listar los archivos remotos y, a continuación, desmóntalo antes de probar fstab:

ls -la /mnt/remote
sudo fusermount3 -u /mnt/remote

El manual de SSHFS recomienda reconnectrestablecer conexiones interrumpidas. También explica que ServerAliveIntervalpuede evitar que un montaje parezca congelado cuando una conexión SSH inactiva se interrumpe silenciosamente. Con un intervalo de 15 segundos y el recuento predeterminado de OpenSSH de tres sondeos sin respuesta, se detecta una conexión inactiva en aproximadamente 45 segundos; aquí se indica el recuento explícitamente para que el comportamiento sea evidente.

4. Agregue una entrada persistente de SSHFS a /etc/fstab.

Realice una copia de seguridad del archivo antes de editarlo:

sudo cp /etc/fstab /etc/fstab.backup
sudo nano /etc/fstab

Añade una línea:

user@server.example.com:/srv/data /mnt/remote fuse.sshfs _netdev,IdentityFile=/root/.ssh/sshfs_remote,BatchMode=yes,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,default_permissions 0 0

El fuse.sshfssubtipo es reconocido por las herramientas de montaje de Debian. El manual SSHFS original también lo documenta sshfscomo un tipo de sistema de archivos fstab y hace anotaciones para garantizar la compatibilidad. El manual fstab(5)fuse.sshfs de Debian describe los seis campos fstab y recomienda la notación de subtipo de sistema de archivos como .fuse.sshfs

OpciónPor qué está aquí
_netdevHace que systemd trate el punto de montaje como dependiente de la red.
IdentityFile=...Selecciona la clave privada de forma explícita en lugar de depender de un agente interactivo.
BatchMode=yesEn lugar de esperar una contraseña o una solicitud de confirmación, falla.
reconnectPermite que SSHFS restablezca una conexión interrumpida.
ServerAliveInterval=15Envía sondeos de mantenimiento de conexión a nivel SSH durante los períodos de inactividad.
ServerAliveCountMax=3Limita las sondas keepalive sin respuesta antes de que se desconecte la conexión SSH.
default_permissionsPermite la comprobación de permisos locales, además de la autorización remota.
Editor Nano que muestra una entrada SSHFS en /etc/fstab con las opciones _netdev, IdentityFile, reconnect y ServerAlive.
Agregue el punto de montaje SSHFS a /etc/fstab con opciones explícitas de red, identidad y reconexión.

5. Comprueba la entrada de fstab antes de reiniciar.

/etc/fstabEs mucho más fácil corregir un error tipográfico antes de reiniciar. Pídele a systemd que recargue las unidades de montaje generadas y luego prueba la entrada:

sudo systemctl daemon-reload
sudo mount -a
findmnt -T /mnt/remote
ls -la /mnt/remote

Si mount -ano devuelve ningún error e findmntinforma , se acepta la sintaxis fstab y se monta el sistema de archivos. El manual mount(8)fuse.sshfs de Debian confirma que monta los sistemas de archivos fstab excepto las entradas marcadas .mount -anoauto

Terminal de Debian que muestra mount -a, salida de findmnt para /mnt/remote y una unidad de montaje systemd activa.
Verifique la entrada fstab con mount -a, findmnt y la unidad de montaje systemd generada antes de reiniciar.

¿Qué ocurre si la red no está lista a tiempo?

_netdevEsto proporciona a systemd la semántica de ordenación correcta, pero network-online.targetsu precisión depende del servicio de gestión de red que la proporciona. El Wi-Fi, las VPN, los retrasos de DHCP, los retrasos de DNS y las pilas de red inusuales aún pueden hacer que un montaje de arranque inmediato no sea fiable.

En ese caso, utilice el automontaje de systemd para que el proceso de arranque cree un punto de automontaje y establezca la conexión SSHFS solo cuando algo acceda por primera vez /mnt/remote. Añada x-systemd.automounta las opciones:

user@server.example.com:/srv/data /mnt/remote fuse.sshfs _netdev,x-systemd.automount,IdentityFile=/root/.ssh/sshfs_remote,BatchMode=yes,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3,default_permissions 0 0

Esta suele ser la mejor opción para portátiles, sistemas Wi-Fi o servidores donde el host remoto puede no estar disponible ocasionalmente. Modifica ligeramente la semántica: el montaje automático se prepara durante el arranque, pero la conexión SSH real se establece en el primer acceso. Si una aplicación requiere absolutamente que el directorio remoto esté conectado antes de iniciarse, mantenga el montaje de red normal y haga que la unidad systemd de esa aplicación dependa de la unidad de montaje.

¿Necesitas allow_other?

Por defecto, un montaje FUSE solo es accesible con los permisos asociados al contexto de montaje. El manual de SSHFS documenta allow_othercómo permitir el acceso a otros usuarios locales. No lo añada a menos que un servicio u otra cuenta necesite realmente los archivos montados.

Si decide usarlo allow_other, revise /etc/fuse.confprimero las implicaciones de seguridad de FUSE. Generalmente, es apropiado combinarlo con default_permissionspara que no se omitan las comprobaciones de permisos locales de Unix. La cuenta SSH remota sigue siendo la que determina en última instancia qué operaciones permite el servidor.

Solución de problemas de fallos de SSHFS durante el arranque

La montura espera una contraseña

Repita la prueba no interactiva con sudo ssh ... -o BatchMode=yes. Si falla, corrija la autenticación de clave pública antes de modificar systemd. Una clave protegida por una contraseña también requerirá un agente u otro mecanismo de secreto de arranque; un montaje simple de fstab no puede escribir la contraseña automáticamente.

Falló la verificación de la clave del host.

No lo aplique StrictHostKeyChecking=nocomo solución general. Verifique si el servidor se reconstruyó o si su clave de host se modificó legítimamente. La verificación de la clave de host SSH es un control de seguridad contra la suplantación de identidad y los ataques de intermediario.

El montaje funciona después de iniciar sesión, pero no durante el arranque.

Compruebe el nombre de la unidad generada y su registro. Para /mnt/remote, systemd normalmente escapa la ruta a mnt-remote.mount:

systemctl status mnt-remote.mount
journalctl -b -u mnt-remote.mount

Si agregaste x-systemd.automount, también inspecciona:

systemctl status mnt-remote.automount

El acceso se bloquea después de que el servidor o la red desaparecen.

Mantenga habilitadas las funciones keepalive de Keep reconnecty SSH. El manual de SSHFS advierte que las operaciones del sistema de archivos pueden bloquearse indefinidamente si no se detecta una conexión interrumpida. Las funciones keepalive limitan la detección de fallos, pero cualquier operación de E/S que estuviera en curso cuando se interrumpió la conexión aún puede fallar y la aplicación podría tener que reintentarla.

Cómo verificar que el montaje realmente sobrevive a un reinicio.

Una vez mount -aque tenga éxito, reinicie la máquina:

sudo reboot

Tras restablecer la conexión, ejecute estas comprobaciones:

findmnt -T /mnt/remote
systemctl is-active mnt-remote.mount
ls -la /mnt/remote

Si elige x-systemd.automount, la unidad de montaje puede permanecer inactiva hasta el primer acceso. Compruebe primero el montaje automático y, a continuación, actívelo con ls:

systemctl is-active mnt-remote.automount
ls -la /mnt/remote
findmnt -T /mnt/remote

Una configuración exitosa presenta cuatro propiedades observables: la autenticación SSH se completa sin interacción, la entrada fstab se verifica correctamente mount -a, systemd reconoce el montaje como dependiente de la red y los archivos remotos son accesibles después de un reinicio limpio. Si alguna de estas comprobaciones falla, solucione el problema directamente en esa capa en lugar de agregar más opciones de montaje al azar.

Dejar un comentario

Solucionar el problema de los controladores de la tarjeta de sonido no detectados en Pardus Linux 23

Solucionar el problema de los controladores de la tarjeta de sonido no detectados en Pardus Linux 23

Solucione el problema de la tarjeta de sonido que falta en Pardus Linux 23. Compruebe la detección de ALSA, los módulos del kernel, los servicios de audio, los perfiles de salida, el firmware y las actualizaciones de forma segura.

Solucionar el problema de resolución de pantalla atascada en 1024x768 en una máquina virtual Pardus KVM

Solucionar el problema de resolución de pantalla atascada en 1024x768 en una máquina virtual Pardus KVM

Solucione el problema de una máquina virtual Pardus KVM atascada en 1024x768 comprobando la GPU virtual, el agente SPICE, la sesión X11 o Wayland y verificando que los modos de visualización superiores sean correctos.

Cómo montar automáticamente un directorio SSHFS remoto al arrancar en Debian

Cómo montar automáticamente un directorio SSHFS remoto al arrancar en Debian

En Debian, se monta automáticamente un directorio SSHFS remoto al arrancar el sistema utilizando SSH basado en claves, /etc/fstab, opciones de red de systemd, automontaje y pasos de verificación.

Solucionar el error "No se puede asignar memoria" durante una actualización del sistema SLES

Solucionar el error "No se puede asignar memoria" durante una actualización del sistema SLES

Solucione el problema "No se puede asignar memoria" durante una actualización de SLES. Compruebe la RAM, el espacio de intercambio, los registros de OOM y los límites de procesos, y luego recupere el sistema sin interrumpir las transacciones de paquetes.

Solucionar problemas de calibración de la pantalla táctil en tabletas con Harmonica OS: Elegir la solución adecuada para Linux

Solucionar problemas de calibración de la pantalla táctil en tabletas con Harmonica OS: Elegir la solución adecuada para Linux

Solucione problemas de desplazamiento táctil, rotación y mapeo de pantalla en tabletas Harmonica OS (HamoniKR). Compare las soluciones de X.Org y libinput, realice pruebas de forma segura y sepa cuándo la calibración no será suficiente.

Cómo configurar una partición SWAP cifrada en una instalación existente de Debian 12.

Cómo configurar una partición SWAP cifrada en una instalación existente de Debian 12.

Encripta una partición de intercambio existente de Debian 12 con dm-crypt, una clave aleatoria nueva en cada arranque, /etc/crypttab, /etc/fstab y pasos de verificación seguros.

Cómo monitorizar el estado de la unidad SMART en Ubuntu mediante alertas por correo electrónico

Cómo monitorizar el estado de la unidad SMART en Ubuntu mediante alertas por correo electrónico

Instala smartmontools en Ubuntu para monitorizar el estado de las unidades y enviar alertas SMART por correo electrónico. Comprueba la compatibilidad de los dispositivos, configura la entrega de correo, prueba las notificaciones y soluciona los fallos.

Solucionar el error "No se encontró ningún dispositivo de arranque" después de instalar Debian en un sistema UEFI.

Solucionar el error "No se encontró ningún dispositivo de arranque" después de instalar Debian en un sistema UEFI.

Solucione los fallos de arranque UEFI de Debian comprobando el modo de arranque del instalador, la partición del sistema EFI, las entradas NVRAM, los archivos GRUB EFI, el arranque seguro y las alternativas de firmware.

Cómo configurar instantáneas Btrfs automatizadas en Ubuntu Desktop

Cómo configurar instantáneas Btrfs automatizadas en Ubuntu Desktop

Configura Snapper para crear y eliminar instantáneas Btrfs programadas en Ubuntu Desktop. Primero, verifica la estructura de tus subvolúmenes, habilita los temporizadores de systemd y comprueba la retención de forma segura.

Solucione de forma segura el problema de falta de espacio en el aprovisionamiento ligero LVM de SUSE Linux Enterprise.

Solucione de forma segura el problema de falta de espacio en el aprovisionamiento ligero LVM de SUSE Linux Enterprise.

Diagnosticar y recuperar un pool LVM thin completo en SUSE Linux Enterprise distinguiendo el agotamiento de datos del agotamiento de metadatos, ampliando el almacenamiento, reparando los metadatos y habilitando la extensión automática.