Accueil
» Comment faire
»
How to Mount a Remote SSHFS Directory Automatically at Boot in Debian
How to Mount a Remote SSHFS Directory Automatically at Boot in Debian
To mount a remote SSHFS directory automatically in Debian, configure noninteractive SSH authentication and add an SSHFS entry to /etc/fstab. With systemd, you can either connect during boot or activate an automount at boot and connect when the directory is first accessed. The second approach is useful when the remote server or network may be unavailable during startup.
This reference uses Debian 13 “trixie” documentation reviewed on October 9, 2026, including SSHFS 3.7.3 and systemd 257 documentation. The commands are configuration examples, not results from a tested deployment. Check your installed manuals if you use another release.
Choose when the SSHFS connection should start
Requirement
Configuration choice
Expected behavior
Make the directory available on demand after boot
Use x-systemd.automount
The first access triggers the remote mount.
Attempt the remote connection during boot
Omit x-systemd.automount
systemd starts the mount as part of startup.
Allow startup to continue if storage is unavailable
Use nofail
The mount is not a required boot dependency.
An application must wait for this storage
Add a dependency to that application’s service
The application starts only after the mount succeeds.
The main example uses an on-demand mount. The distinction matters: an active automount does not mean an SSHFS connection already exists. See Debian’s systemd automount manual for the relationship between the automount and its matching mount unit.
Before you start
The Debian client uses systemd and you have sudo access.
The remote account supports SFTP and can access the intended directory.
The client can reach the remote host, including any required VPN or jump host.
You have a way to verify the remote server’s SSH host-key fingerprint.
The local mount point is empty and is not a critical system directory.
Replace files@storage.example.net:/srv/data with your remote username, hostname, and directory. The hostname is a placeholder. The local mount point is /mnt/remote; the dedicated key is /root/.ssh/sshfs_boot.
This is an administrator-managed system mount. It runs locally as root but logs into the remote server as files, not remote root. The SSHFS project documentation generally recommends running ordinary interactive mounts as a regular user. A system boot mount requires deliberate credential and access management.
Install SSHFS on the Debian client. The remote system needs working SFTP service; it does not need an SSHFS installation just to serve files. If package installation fails, resolve the repository or connectivity issue before editing boot configuration.
Install the SSHFS client and OpenSSH tools on Debian.
Ne remplacez pas une clé existante à cet emplacement. Choisissez un autre nom si nécessaire et utilisez-le systématiquement par la suite. L'absence de phrase secrète est intentionnelle dans cet exemple de fonctionnement sans surveillance : personne n'est disponible pour déverrouiller la clé au démarrage. Protégez le client et n'accordez au compte distant que les autorisations d'accès au répertoire dont il a besoin. Si votre politique exige des clés chiffrées, mettez en place un mécanisme de déverrouillage sans surveillance géré.
Lors de cette connexion d'établissement, comparez l'empreinte de la clé hôte affichée avec une valeur fournie par l'administrateur du serveur via un canal de confiance avant de l'accepter. La commande s'exécute en tant que superutilisateur local (root), la clé hôte est donc stockée dans les fichiers SSH de root. Si l'authentification par mot de passe est désactivée sur le serveur, demandez à l'administrateur d'installer la clé publique.
Ensuite, testez le protocole SFTP avec le même fichier d'identité et de clé d'hôte que celui utilisé par le montage de démarrage :
À l'invite SFTP, utilisez `ssh` ls /srv/data, puis `ssh` bye. Cela doit fonctionner sans mot de passe ni confirmation. BatchMode=yes`ssh` empêche l'authentification interactive ; la configuration explicite de la clé d'hôte préserve la vérification. Ces options sont définies dans le manuel de configuration du client OpenSSH .
Pour un port non standard, utilisez les options -p 2222`ssh-copy-id`, -P 2222`sftp` et port=2222`SSHFS`. Si un serveur intermédiaire est nécessaire, configurez et testez également cette route dans le contexte SSH de l'utilisateur root.
Autoriser la clé publique dédiée pour l'exemple de compte distant ; vérifier l'empreinte de l'hôte lors de la configuration.
Vérifiez que le répertoire distant correspond bien au répertoire souhaité. Cet exemple n'autorise initialement l'accès qu'à l'utilisateur root (propriétaire du montage local) ; utilisez donc sudo pour effectuer la vérification. Terminez en démontant le montage avant de lancer la configuration gérée par systemd. Fermez les shells et les applications utilisant ce répertoire s'il est occupé.
SSHFS utilise les permissions du compte distant. Être root sur le client ne confère pas de permissions supplémentaires sur le serveur. Corrigez les erreurs d'authentification, de SFTP ou de chemin d'accès distant ici avant de rendre la configuration permanente.
Le terminal affiche un exemple de montage manuel ; utilisez la commande complète et les options de vérification indiquées dans le texte.
5. Ajoutez l'entrée fstab persistante
sudo cp -a /etc/fstab /etc/fstab.sshfs-backup
sudoedit /etc/fstab
Choisissez un autre nom de fichier de sauvegarde si celui-ci existe déjà. Ajoutez le texte suivant sur une seule ligne , en remplaçant le serveur et le chemin d'accès d'exemple :
Le manuel SSHFS de Debian spécifie sshfsle type de système de fichiers fstab et l'accepte fuse.sshfspour des raisons de compatibilité. Les derniers champs désactivent la planification des vidages et des vérifications du système de fichiers pour cette entrée. Consultez la documentation de référence du format fstab si les chemins contiennent des espaces.
Option
Objectif
_netdev
Indique que le support est dépendant du réseau.
nofail
Poursuivons le démarrage sans nécessiter ce montage.
x-systemd.automount
Crée un montage automatique déclenché par l'accès.
x-systemd.mount-timeout=30s
Limite le délai d'attente de la commande de montage initiale.
ConnectTimeout=10
Établissement d'une connexion SSH limitée.
reconnectet paramètres server-alive
Aide à détecter une connexion interrompue et à la rétablir.
Les options spécifiques à systemd sont documentées dans le manuel de montage systemd de Debian . Le délai d'expiration du montage n'impose pas de limite à chaque opération de fichier ultérieure.
Sauvegardez le fichier fstab avant d'ajouter l'entrée SSHFS persistante.
6. Rechargez systemd et activez le montage automatique
sudo findmnt --verify --verbose
sudo systemctl daemon-reload
sudo systemctl start mnt-remote.automount
systemctl status mnt-remote.automount
sudo ls /mnt/remote
findmnt -t fuse.sshfs
Veuillez consulter les messages de vérification avant de continuer. Le manuel de findmnt décrit la vérification du fichier fstab ; celle-ci contrôle la configuration et non la validité des informations d'identification distantes. L'accès au répertoire effectue un test de connexion distinct.
Les noms d'unités ci-dessus correspondent à /mnt/remote. Pour un autre chemin, déterminez le nom de montage avec systemd-escape --path --suffix=mount /your/path. Les unités générées à partir de fstab ne nécessitent pas de systemctl enablecommande supplémentaire.
Si vous souhaitez une tentative de connexion au démarrage, supprimez x-systemd.automountl'entrée correspondante. Après avoir libéré les utilisateurs du répertoire, arrêtez son montage automatique et ses unités de montage, rechargez systemd et démarrez l'unité de montage correspondante. Conservez cette entrée nofailsi le stockage doit rester optionnel.
Rechargez systemd et démarrez l'unité de montage automatique générée.
7. Vérifiez le comportement après un redémarrage
Redémarrez à un moment opportun pour la maintenance. Avec la configuration à la demande, vérifiez d'abord le montage automatique, puis accédez au répertoire :
systemctl status mnt-remote.automount
sudo ls /mnt/remote
systemctl status mnt-remote.mount
findmnt -t fuse.sshfs
Les signes attendus sont un montage automatique actif au démarrage et un montage SSHFS effectif après accès. Une autofsentrée SSHFS seule ne prouve pas que les fichiers distants sont connectés. Vérifiez l'existence d'un fichier ou d'un répertoire distant connu, et non pas simplement celle du dossier de montage local.
Si une application nécessite cet espace de stockage avant de démarrer, ajoutez un module complémentaire à son service contenant :
[Unit]
RequiresMountsFor=/mnt/remote
Cette dépendance, documentée dans systemd.unit , charge et ordonne les montages nécessaires. Rechargez systemd et testez le démarrage de l'application séparément. L'application requiert également les autorisations d'accès locales appropriées.
Accédez au répertoire, puis examinez le montage SSHFS réel et son état.
Répétez le test SFTP en contexte racine ; vérifiez la clé sélectionnée et l’autorisation distante.
Échec de la vérification de la clé d'hôte
Vérifiez l'empreinte du serveur et l'entrée known_hosts de l'administrateur. Examinez toute clé modifiée avant de la mettre à jour.
Échec de la résolution de nom ou de la connexion
Vérifiez la disponibilité du DNS, du routage, de l'accès aux ports, du démarrage du VPN et du serveur de rebond.
sudo peut lire les fichiers, mais un utilisateur local ne le peut pas.
Examiner la politique d'accès FUSE et la cartographie des propriétaires.
Le mont est occupé
Fermez les processus dont le répertoire de travail ou les fichiers ouverts se trouvent sous le point de montage.
network-online.targetIl s'agit d'un point de synchronisation au démarrage, et non d'une garantie de disponibilité d'un serveur ou d'un VPN particulier. La documentation de systemd network-online décrit cette limitation.
Pour un accès intentionnel par un utilisateur local, envisagez d'ajouter ` allow_other,default_permissions,uid=1000,gid=1000<UID>`, en remplaçant `<UID>` par les identifiants locaux réels. Cela autorise l'accès au-delà du propriétaire du point de montage, tout en maintenant les vérifications des permissions du noyau. Les options `UID`/`GID` modifient la propriété affichée, et non la propriété côté serveur. Les points de montage racine ne nécessitent pas `<UID>` user_allow_otherdans `fuse.conf` ; cette règle permet aux points de montage non racine de demander un accès plus étendu. Consultez le manuel des permissions FUSE . Effectuez un nouveau test en tant qu'utilisateur de l'application après avoir modifié ces options.
Après avoir résolu le problème sous-jacent, effacez l'état de montage défaillant et réessayez l'accès :
sudo systemctl reset-failed mnt-remote.mount
sudo ls /mnt/remote
La reconnexion n'est pas une solution de récupération transparente pour toutes les applications : les fichiers précédemment ouverts peuvent échouer et nécessiter une réouverture. Les écritures interrompues peuvent entraîner une perte de données. Si votre charge de travail exige une meilleure tolérance aux pannes, optez pour une autre solution de stockage.
Consultez d'abord le journal de montage ; corrigez un état défaillant après en avoir résolu la cause.
Liste de contrôle opérationnelle et restauration
Le protocole SFTP sans surveillance fonctionne en utilisant l'identité de démarrage exacte.
La clé hôte est vérifiée et enregistrée dans le fichier prévu.
L'entrée fstab est analysée et ne contient aucun mot de passe ni contenu de clé privée.
L'accès après redémarrage affiche la liste des serveurs distants attendue.
L'utilisateur ou le service local concerné peut lire les fichiers requis.
Vous comprenez comment l'application gère l'espace de stockage indisponible.
Pour désactiver la configuration, arrêtez les applications utilisant le répertoire, supprimez uniquement cette entrée du fichier fstab, puis exécutez mnt-remote.automountla commande appropriée. Conservez les autres entrées du fichier fstab. La suppression de la configuration de montage ne supprime pas les fichiers distants et ne révoque pas la clé d'autorisation distante.mnt-remote.mountsudo systemctl daemon-reload