Home
» Hoe
»
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.
Overschrijf geen bestaande sleutel op dat pad. Kies indien nodig een andere naam en gebruik deze consequent hieronder. De lege wachtzin is opzettelijk voor dit onbeheerde voorbeeld: er is niemand beschikbaar om de sleutel tijdens het opstarten te ontgrendelen. Bescherm de client en geef het externe account alleen de benodigde maprechten. Als uw beleid versleutelde sleutels vereist, implementeer dan een beheerd onbeheerd ontgrendelingsmechanisme.
Tijdens deze verbindingsconfiguratie moet de weergegeven host-key fingerprint worden vergeleken met een waarde die via een vertrouwd kanaal van de serverbeheerder is verkregen, voordat de verbinding wordt geaccepteerd. De opdracht wordt uitgevoerd als lokale root, dus het gebruikelijke host-key record wordt opgeslagen in de SSH-bestanden van root. Als configuratie op basis van een wachtwoord is uitgeschakeld op de server, laat de beheerder dan in plaats daarvan de publieke sleutel installeren.
Test vervolgens SFTP met dezelfde identiteit en host-sleutelbestand die de bootmount zal gebruiken:
Gebruik bij de SFTP-prompt , ls /srv/datagevolgd door bye. Dit moet werken zonder wachtwoord of bevestigingsprompt. BatchMode=yesvoorkomt interactieve authenticatie; de expliciete host-key-instelling behoudt de verificatie. Deze opties worden beschreven in de OpenSSH-clientconfiguratiehandleiding .
Voor een niet-standaard poort, gebruik -p 2222ssh-copy-id, -P 2222sftp en port=2222in de SSHFS-opties. Als een jump host nodig is, configureer en test die route dan ook in de SSH-context van root.
Autoriseer de specifieke openbare sleutel voor het voorbeeldaccount op afstand; verifieer de hostvingerafdruk tijdens de installatie.
Controleer of de lijst daadwerkelijk naar de beoogde externe map verwijst. In dit voorbeeld is in eerste instantie alleen toegang toegestaan aan de lokale eigenaar van de mount, root, dus gebruik `sudo` voor de controle. Ontkoppel de mount voordat u de door systemd beheerde configuratie start. Sluit shells en applicaties die de map gebruiken als deze in gebruik is.
SSHFS gebruikt de machtigingen van het externe account. Root-toegang op de client verleent geen extra machtigingen op de server. Los authenticatie-, SFTP- of externe padfouten hier op voordat u de configuratie permanent opslaat.
De terminal toont een voorbeeld van handmatig mounten; gebruik de volledige opdracht en verificatieopties in de tekst.
5. Voeg de permanente fstab-vermelding toe.
sudo cp -a /etc/fstab /etc/fstab.sshfs-backup
sudoedit /etc/fstab
Kies een andere back-upbestandsnaam als die back-up al bestaat. Voeg het volgende toe als één fysieke regel , waarbij u de voorbeeldserver en het pad vervangt:
De SSHFS-handleiding van Debian specificeert sshfsals het fstab-bestandssysteemtype en accepteert fuse.sshfsvoor compatibiliteit. De laatste velden schakelen het plannen van dumps en bestandssysteemcontroles voor deze vermelding uit. Raadpleeg de fstab-formaatreferentie als paden spaties bevatten.
Optie
Doel
_netdev
De mount wordt geclassificeerd als netwerkafhankelijk.
nofail
Laten we het opstartproces voortzetten zonder deze koppeling nodig te hebben.
x-systemd.automount
Creëert een door toegang geactiveerde automount.
x-systemd.mount-timeout=30s
Beperkt de wachttijd van het initiële montagecommando.
ConnectTimeout=10
Verbinding tot stand brengen via Bounds SSH.
reconnecten server-alive instellingen
Help bij het detecteren van een verbroken verbinding en het herstellen ervan.
De systemd-specifieke opties worden beschreven in de Debian systemd mount-handleiding . De mount-timeout legt geen deadline op voor elke latere bestandsbewerking.
Maak een back-up van fstab voordat je de permanente SSHFS-vermelding toevoegt.
6. Herlaad systemd en activeer de automount.
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
Bekijk de verificatieberichten voordat u verdergaat. De handleiding van findmnt beschrijft de fstab-verificatie; deze controleert de configuratie, niet of de externe inloggegevens werken. Toegang tot de directory voert de aparte verbindingstest uit.
De bovenstaande eenheidsnamen komen overeen met /mnt/remote. Voor een ander pad kunt u de mountnaam afleiden met systemd-escape --path --suffix=mount /your/path. Eenheden die gegenereerd worden vanuit fstab hebben geen apart systemctl enablecommando nodig.
Als u tijdens het opstarten een verbindingspoging wilt uitvoeren, verwijder deze dan x-systemd.automountuit de betreffende regel. Nadat u de gebruikers van de directory hebt vrijgegeven, stopt u de automount- en mount-units, herlaadt u systemd en start u de bijbehorende mount-unit. Laat deze regel staan nofailals opslag optioneel moet blijven.
Herlaad systemd en start de gegenereerde automount-eenheid.
7. Controleer het gedrag na een herstart
Herstart de computer op een geschikt moment voor onderhoud. Controleer bij de configuratie op aanvraag eerst de automatische koppeling en open vervolgens de map:
systemctl status mnt-remote.automount
sudo ls /mnt/remote
systemctl status mnt-remote.mount
findmnt -t fuse.sshfs
Verwachte tekenen zijn een actieve automount na het opstarten en een daadwerkelijke SSHFS-mount na toegang. Een autofsvermelding alleen bewijst niet dat er verbinding is gemaakt met de externe bestanden. Controleer of er een bekend extern bestand of een bekende externe map bestaat, niet alleen of de lokale mountpoint-map bestaat.
Als een applicatie deze opslagruimte nodig heeft voordat deze kan starten, voeg dan een drop-in toe aan de service met de volgende inhoud:
[Unit]
RequiresMountsFor=/mnt/remote
Deze afhankelijkheid, gedocumenteerd in systemd.unit , haalt de benodigde mounts op en plaatst ze in de juiste volgorde. Herlaad systemd en test de opstart van die applicatie afzonderlijk. De applicatie heeft ook de juiste lokale toegangsrechten nodig.
Open de map en controleer vervolgens de daadwerkelijke SSHFS-mount en de status ervan.
8. Probleemoplossing op basis van het type storing
Herhaal de SFTP-test in root-context; controleer de geselecteerde sleutel en de externe autorisatie.
De verificatie van de hostsleutel mislukt.
Controleer de serverfingerprint en de known_hosts-vermelding van root. Onderzoek een gewijzigde sleutel voordat u deze bijwerkt.
Naamresolutie of verbinding mislukt
Controleer DNS, routering, poorttoegang, VPN-opstart en de beschikbaarheid van de jump-host.
Het commando `sudo` kan bestanden lezen, maar een lokale gebruiker kan dat niet.
Controleer het FUSE-toegangsbeleid en de eigendomsmapping.
Mount is drukbezet.
Sluit processen waarvan de werkmap of geopende bestanden zich onder het koppelpunt bevinden.
network-online.targetHet is een synchronisatiepunt bij het opstarten, geen garantie dat een bepaalde server of VPN bereikbaar is. De uitleg van systemd network-online beschrijft die beperking.
Voor opzettelijke toegang door een lokale gebruiker kunt u overwegen om toe te voegen allow_other,default_permissions,uid=1000,gid=1000en de daadwerkelijke lokale ID's te vervangen. Dit maakt toegang mogelijk voor gebruikers die niet de eigenaar van de mount zijn, terwijl de kernel-toegangscontroles nog steeds van toepassing zijn. De UID/GID-opties wijzigen het gepresenteerde eigenaarschap, niet het eigenaarschap aan de serverzijde. Root-mounts vereisen geen user_allow_otherin fuse.conf; dat beleid maakt het voor niet-root-mounts mogelijk om bredere toegang aan te vragen. Zie de FUSE-handleiding voor machtigingen . Test opnieuw als de beoogde applicatiegebruiker nadat u deze opties hebt gewijzigd.
Nadat het onderliggende probleem is opgelost, wis je de status van een mislukte koppeling en probeer je de toegang opnieuw:
sudo systemctl reset-failed mnt-remote.mount
sudo ls /mnt/remote
Reconnect biedt geen transparante hersteloplossing voor elke toepassing: eerder geopende bestanden kunnen beschadigd raken en moeten mogelijk opnieuw worden geopend. Onderbroken schrijfbewerkingen kunnen leiden tot gegevensverlies. Kies een ander opslagontwerp als uw werkbelasting sterkere garanties tegen dataverlies vereist.
Lees eerst het montagelogboek; verwijder een mislukte status nadat je de oorzaak hebt verholpen.
Operationele checklist en terugdraaiing
Unattended SFTP werkt met exact dezelfde opstartidentiteit.
De host-sleutel wordt geverifieerd en opgeslagen in het verwachte bestand.
De fstab-vermelding wordt geparseerd en bevat geen wachtwoorden of privésleutels.
Toegang na een herstart levert de beoogde lijst met externe apparaten op.
De daadwerkelijke lokale gebruiker of service kan de benodigde bestanden lezen.
U begrijpt hoe de applicatie omgaat met niet-beschikbare opslagruimte.
Om de configuratie uit te schakelen, stop je de applicaties die de directory gebruiken, stop je mnt-remote.automounten mnt-remote.mount, verwijder je alleen deze vermelding uit fstab en voer je uit sudo systemctl daemon-reload. Behoud de overige fstab-vermeldingen. Het verwijderen van de mount-configuratie verwijdert geen externe bestanden en trekt de externe geautoriseerde sleutel niet in.