Strona główna
» Jak
»
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.
Nie nadpisuj istniejącego klucza w tej ścieżce. W razie potrzeby wybierz inną nazwę i używaj jej konsekwentnie poniżej. Puste hasło jest celowe w tym przykładzie bez nadzoru: nie ma osoby, która mogłaby odblokować klucz podczas rozruchu. Chroń klienta i nadaj zdalnemu kontu tylko niezbędne uprawnienia do katalogów. Jeśli Twoja polityka wymaga szyfrowanych kluczy, zamiast tego zorganizuj zarządzany mechanizm bez nadzoru.
Podczas konfiguracji połączenia porównaj wyświetlony odcisk klucza hosta z wartością uzyskaną od administratora serwera za pośrednictwem zaufanego kanału, zanim ją zaakceptujesz. Polecenie jest uruchamiane jako lokalny użytkownik root, więc standardowy rekord klucza hosta jest przechowywany w plikach SSH użytkownika root. Jeśli konfiguracja oparta na haśle jest wyłączona na serwerze, poproś administratora o zainstalowanie klucza publicznego.
Następnie przetestuj SFTP przy użyciu tej samej tożsamości i pliku klucza hosta, których będzie używał punkt rozruchowy:
W wierszu poleceń SFTP użyj ls /srv/data, a następnie bye. Musi to działać bez hasła ani monitu o potwierdzenie. BatchMode=yesZapobiega uwierzytelnianiu interaktywnemu; jawne ustawienie klucza hosta zachowuje weryfikację. Opcje te są zdefiniowane w podręczniku konfiguracji klienta OpenSSH .
W przypadku portu innego niż domyślny, użyj opcji -p 2222ssh-copy-id, -P 2222sftp i port=2222SSHFS. Jeśli potrzebny jest host przeskoku, skonfiguruj i przetestuj tę trasę również w kontekście SSH użytkownika root.
Autoryzuj dedykowany klucz publiczny dla przykładowego konta zdalnego; zweryfikuj odcisk palca hosta podczas konfiguracji.
Sprawdź, czy listing należy do docelowego katalogu zdalnego. Ten przykład początkowo zezwala na dostęp tylko lokalnemu właścicielowi montowania, rootowi, więc użyj sudo do sprawdzenia. Zakończ odmontowywaniem przed rozpoczęciem konfiguracji zarządzanej przez systemd. Zamknij powłoki i aplikacje korzystające z katalogu, jeśli jest on zajęty.
SSHFS korzysta z uprawnień konta zdalnego. Posiadanie uprawnień root na kliencie nie daje dodatkowych uprawnień na serwerze. Przed utrwaleniem konfiguracji należy naprawić błędy uwierzytelniania, SFTP lub zdalnej ścieżki.
W terminalu pokazano przykład ręcznego montowania; użyj pełnego polecenia i opcji weryfikacji podanych w tekście.
5. Dodaj trwały wpis fstab
sudo cp -a /etc/fstab /etc/fstab.sshfs-backup
sudoedit /etc/fstab
Wybierz inną nazwę pliku kopii zapasowej, jeśli ta kopia zapasowa już istnieje. Dodaj poniższy kod w jednym wierszu , zastępując przykładowy serwer i ścieżkę:
Podręcznik SSHFS Debiana określa sshfstyp systemu plików fstab i akceptuje go fuse.sshfsdla zapewnienia kompatybilności. Ostatnie pola wyłączają harmonogram zrzutu i sprawdzania systemu plików dla tego wpisu. Zapoznaj się z informacjami o formacie fstab, jeśli ścieżki zawierają spacje.
Opcja
Cel
_netdev
Klasyfikuje mocowanie jako zależne od sieci.
nofail
Pozwala na kontynuację rozruchu bez konieczności podłączania tego urządzenia.
x-systemd.automount
Tworzy automatyczne montowanie wyzwalane dostępem.
x-systemd.mount-timeout=30s
Ogranicza czas oczekiwania na początkowe polecenie montowania.
ConnectTimeout=10
Ogranicza nawiązanie połączenia SSH.
reconnecti ustawienia działające na serwerze
Pomóż wykryć zerwane połączenie i nawiązać je ponownie.
Opcje specyficzne dla systemd są udokumentowane w podręczniku montowania systemd w systemie Debian . Limit czasu montowania nie narzuca limitu czasowego dla każdej późniejszej operacji na plikach.
Przed dodaniem trwałego wpisu SSHFS należy wykonać kopię zapasową pliku fstab.
6. Przeładuj systemd i aktywuj 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
Przed kontynuowaniem zapoznaj się z komunikatami weryfikacyjnymi. Podręcznik findmnt opisuje weryfikację fstab; sprawdza ona konfigurację, a nie działanie zdalnych poświadczeń. Dostęp do katalogu powoduje wykonanie osobnego testu połączenia.
Powyższe nazwy jednostek odpowiadają /mnt/remote. Aby uzyskać inną ścieżkę, wyprowadź nazwę montowania za pomocą systemd-escape --path --suffix=mount /your/path. Jednostki wygenerowane z fstab nie wymagają osobnego systemctl enablepolecenia.
Jeśli chcesz, aby próba połączenia została podjęta podczas rozruchu, usuń x-systemd.automountwpis. Po zwolnieniu użytkowników katalogu, zatrzymaj jego jednostki automount i mount, przeładuj systemd i uruchom odpowiednią jednostkę montowania. Zachowaj, nofailjeśli pamięć ma pozostać opcjonalna.
Przeładuj systemd i uruchom wygenerowaną jednostkę automount.
7. Sprawdź zachowanie po ponownym uruchomieniu
Uruchom ponownie w odpowiednim czasie konserwacji. W przypadku konfiguracji na żądanie najpierw sprawdź automontowanie, a następnie uzyskaj dostęp do katalogu:
systemctl status mnt-remote.automount
sudo ls /mnt/remote
systemctl status mnt-remote.mount
findmnt -t fuse.sshfs
Oczekiwanymi znakami są aktywne automatyczne montowanie po uruchomieniu i rzeczywiste montowanie SSHFS po dostępie. autofsSam wpis nie dowodzi, że pliki zdalne są podłączone. Sprawdź znany zdalny plik lub katalog, a nie tylko to, czy istnieje lokalny folder punktu montowania.
Jeśli aplikacja musi mieć tę pamięć przed uruchomieniem, dodaj do jej usługi moduł zawierający:
[Unit]
RequiresMountsFor=/mnt/remote
Ta zależność, udokumentowana w pliku systemd.unit , pobiera i porządkuje niezbędne montowania. Przeładuj systemd i przetestuj osobno uruchomienie tej aplikacji. Aplikacja potrzebuje również odpowiednich lokalnych uprawnień dostępu.
Uzyskaj dostęp do katalogu, a następnie sprawdź rzeczywisty punkt montowania SSHFS i status jego jednostki.
Uwierzytelnianie kluczem publicznym kończy się niepowodzeniem
Powtórz test SFTP kontekstu głównego, sprawdź wybrany klucz i autoryzację zdalną.
Weryfikacja klucza hosta kończy się niepowodzeniem
Zweryfikuj odcisk palca serwera i wpis „known_hosts” użytkownika root. Sprawdź zmieniony klucz przed jego aktualizacją.
Rozpoznawanie nazwy lub połączenie nie powiodło się
Sprawdź DNS, routing, dostęp do portu, uruchamianie VPN i dostępność jump-hosta.
sudo może czytać pliki, ale użytkownik lokalny nie może
Przejrzyj zasady dostępu i mapowanie własności FUSE.
Góra jest zajęta
Zamknij procesy, których katalog roboczy lub otwarte pliki znajdują się w punkcie montowania.
network-online.targetTo punkt synchronizacji startowej, a nie gwarancja dostępności konkretnego serwera lub sieci VPN. Wyjaśnienie systemd network-online opisuje to ograniczenie.
Aby uzyskać celowy dostęp przez użytkownika lokalnego, rozważ dodanie allow_other,default_permissions,uid=1000,gid=1000, zastępując rzeczywiste identyfikatory lokalne. Umożliwi to dostęp poza właścicielem montowania, przy jednoczesnym zachowaniu kontroli uprawnień jądra. Opcje UID/GID zmieniają prezentowane prawa własności, a nie prawa własności po stronie serwera. Montowania root nie wymagają user_allow_otherpliku fuse.conf; ta polityka umożliwia montowaniom innym niż root żądanie szerszego dostępu. Zapoznaj się z podręcznikiem uprawnień FUSE . Po zmianie tych opcji przetestuj ponownie jako docelowy użytkownik aplikacji.
Po rozwiązaniu problemu podstawowego wyczyść stan nieudanego montowania i spróbuj ponownie uzyskać dostęp:
sudo systemctl reset-failed mnt-remote.mount
sudo ls /mnt/remote
Ponowne połączenie nie zapewnia transparentnego odzyskiwania danych dla każdej aplikacji: wcześniej otwarte pliki mogą ulec awarii i wymagać ponownego otwarcia. Przerwane zapisy mogą prowadzić do utraty danych. Wybierz inną konstrukcję pamięci masowej, jeśli Twoje obciążenie wymaga silniejszych zabezpieczeń przed awariami.
Najpierw przeczytaj dziennik montażu; usuń błąd po usunięciu jego przyczyny.
Lista kontrolna operacyjna i wycofanie
Nienadzorowany protokół SFTP działa przy użyciu dokładnego identyfikatora rozruchowego.
Klucz hosta zostaje zweryfikowany i zapisany w oczekiwanym pliku.
Wpis w pliku fstab nie zawiera żadnych haseł ani kluczy prywatnych.
Dostęp po ponownym uruchomieniu powoduje wyświetlenie oczekiwanej zdalnej listy.
Rzeczywisty lokalny użytkownik lub usługa może odczytać wymagane pliki.
Rozumiesz, w jaki sposób aplikacja radzi sobie z niedostępną pamięcią masową.
Aby wyłączyć konfigurację, zatrzymaj aplikacje korzystające z katalogu, poleceniami „stop” mnt-remote.automounti mnt-remote.mount„run”, usuń tylko ten wpis z fstab i uruchom sudo systemctl daemon-reload. Zachowaj pozostałe wpisy fstab. Usunięcie konfiguracji montowania nie powoduje usunięcia plików zdalnych ani unieważnienia klucza autoryzacji zdalnej.