Jak automatycznie zamontować zdalny katalog SSHFS podczas rozruchu w systemie Debian

Aby automatycznie zamontować zdalny katalog SSHFS w systemie Debian, należy skonfigurować nieinteraktywne uwierzytelnianie SSH i dodać wpis SSHFS do pliku /etc/fstab. W systemie systemd można połączyć się podczas rozruchu lub aktywować automatyczne montowanie podczas rozruchu i połączyć się przy pierwszym dostępie do katalogu. Drugie podejście jest przydatne, gdy zdalny serwer lub sieć mogą być niedostępne podczas uruchamiania.

W tym dokumencie wykorzystano dokumentację „trixie” systemu Debian 13, zrecenzowaną 9 października 2026 r., w tym dokumentację SSHFS 3.7.3 i systemd 257. Polecenia są przykładami konfiguracji, a nie wynikami przetestowanego wdrożenia. Sprawdź zainstalowane instrukcje, jeśli korzystasz z innej wersji.

Wybierz, kiedy połączenie SSHFS ma się rozpocząć

WymaganieWybór konfiguracjiOczekiwane zachowanie
Udostępnij katalog na żądanie po rozruchuUżyjx-systemd.automountPierwszy dostęp powoduje zdalne montowanie.
Spróbuj nawiązać połączenie zdalne podczas rozruchuPomińx-systemd.automountsystemd uruchamia montowanie jako część uruchamiania.
Zezwól na kontynuowanie uruchamiania, jeśli pamięć masowa jest niedostępnaUżyjnofailMontowanie nie jest wymaganą zależnością rozruchową.
Aplikacja musi czekać na to miejsce przechowywaniaDodaj zależność do usługi tej aplikacjiAplikacja zostanie uruchomiona dopiero po pomyślnym zamontowaniu.

Główny przykład wykorzystuje montowanie na żądanie. To rozróżnienie ma znaczenie: aktywne automatyczne montowanie nie oznacza, że ​​połączenie SSHFS już istnieje. Informacje na temat relacji między automatycznym montowaniem a odpowiadającą mu jednostką montowania można znaleźć w podręczniku systemu Debian dotyczącym automatycznego montowania (systemd) .

Zanim zaczniesz

  • Klient Debiana używa systemd i masz dostęp sudo.
  • Konto zdalne obsługuje protokół SFTP i może uzyskać dostęp do wybranego katalogu.
  • Klient może nawiązać połączenie ze zdalnym hostem, w tym z dowolnym wymaganym VPN lub hostem przesiadkowym.
  • Masz możliwość weryfikacji odcisku klucza hosta SSH zdalnego serwera.
  • Lokalny punkt montowania jest pusty i nie jest krytycznym katalogiem systemowym.

Zastąp files@storage.example.net:/srv/datazdalną nazwą użytkownika, nazwą hosta i katalogiem. Nazwa hosta jest symbolem zastępczym. Lokalny punkt montowania to /mnt/remote; klucz dedykowany to /root/.ssh/sshfs_boot.

To jest montowanie systemu zarządzane przez administratora. Działa lokalnie jako użytkownik root, ale loguje się do serwera zdalnego jako użytkownik files, a nie zdalny użytkownik root. Dokumentacja projektu SSHFS generalnie zaleca uruchamianie zwykłych montowań interaktywnych jako zwykły użytkownik. Montowanie systemu podczas rozruchu wymaga przemyślanego zarządzania poświadczeniami i dostępem.

1. Zainstaluj pakiety klienta

sudo apt update
sudo apt install sshfs openssh-client
sshfs --version
systemctl --version

Zainstaluj SSHFS na kliencie Debian. System zdalny wymaga działającej usługi SFTP; instalacja SSHFS nie jest wymagana tylko do obsługi plików. Jeśli instalacja pakietów się nie powiedzie, rozwiąż problem z repozytorium lub łącznością przed edycją konfiguracji rozruchu.

Terminal pokazujący aktualizację apt oraz instalację sshfs i openssh-client.
Zainstaluj klienta SSHFS i narzędzia OpenSSH w systemie Debian.

2. Przygotuj punkt montowania i klucz dedykowany

sudo install -d -m 0700 /root/.ssh
sudo mkdir -p /mnt/remote
sudo ssh-keygen -t ed25519 -f /root/.ssh/sshfs_boot -N ''
sudo chmod 0600 /root/.ssh/sshfs_boot

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.

Opcje generowania kluczy są udokumentowane w podręczniku ssh-keygen Debiana . Klucz odblokowany w agencie SSH na komputerze stacjonarnym nie jest automatycznie dostępny dla punktu montowania w systemie.

Terminal pokazujący tworzenie katalogu SSH roota i punktu montowania /mnt/remote.
Przed utworzeniem dedykowanego klucza rozruchowego przygotuj katalogi lokalne.

3. Autoryzuj klucz i zweryfikuj nienadzorowany protokół SFTP

sudo ssh-copy-id -i /root/.ssh/sshfs_boot.pub files@storage.example.net

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:

sudo sftp -i /root/.ssh/sshfs_boot \
  -o IdentitiesOnly=yes -o BatchMode=yes \
  -o StrictHostKeyChecking=yes \
  -o UserKnownHostsFile=/root/.ssh/known_hosts \
  files@storage.example.net

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.

Terminal pokazujący polecenie ssh-copy-id z dedykowanym kluczem publicznym i przykładowym kontem zdalnym.
Autoryzuj dedykowany klucz publiczny dla przykładowego konta zdalnego; zweryfikuj odcisk palca hosta podczas konfiguracji.

4. Udowodnij, że montaż ręczny działa

sudo sshfs files@storage.example.net:/srv/data /mnt/remote \
  -o IdentityFile=/root/.ssh/sshfs_boot,IdentitiesOnly=yes,BatchMode=yes \
  -o StrictHostKeyChecking=yes,UserKnownHostsFile=/root/.ssh/known_hosts
sudo ls /mnt/remote
sudo umount /mnt/remote

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.

Terminal pokazujący przykładowe polecenie SSHFS ze ścieżką zdalną, punktem montowania, trybem wsadowym BatchMode i plikiem tożsamości.
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ę:

files@storage.example.net:/srv/data /mnt/remote sshfs _netdev,nofail,x-systemd.automount,x-systemd.mount-timeout=30s,IdentityFile=/root/.ssh/sshfs_boot,IdentitiesOnly=yes,BatchMode=yes,StrictHostKeyChecking=yes,UserKnownHostsFile=/root/.ssh/known_hosts,ConnectTimeout=10,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 0 0

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.

OpcjaCel
_netdevKlasyfikuje mocowanie jako zależne od sieci.
nofailPozwala na kontynuację rozruchu bez konieczności podłączania tego urządzenia.
x-systemd.automountTworzy automatyczne montowanie wyzwalane dostępem.
x-systemd.mount-timeout=30sOgranicza czas oczekiwania na początkowe polecenie montowania.
ConnectTimeout=10Ogranicza nawiązanie połączenia SSH.
reconnecti ustawienia działające na serwerzePomóż 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.

Terminal pokazujący polecenia tworzenia kopii zapasowej i edycji pliku /etc/fstab.
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ę mount. Zachowaj, nofailjeśli pamięć ma pozostać opcjonalna.

Terminal pokazuje polecenie daemon-reload i uruchamia jednostkę automount mnt-remote.
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.

Terminal pokazujący polecenia dostępu do katalogów, findmnt i statusu jednostki montującej.
Uzyskaj dostęp do katalogu, a następnie sprawdź rzeczywisty punkt montowania SSHFS i status jego jednostki.

8. Rozwiązywanie problemów według typu awarii

sudo journalctl -b -u mnt-remote.mount
sudo journalctl -b -u mnt-remote.automount
ObjawZaznacz dalej
Uwierzytelnianie kluczem publicznym kończy się niepowodzeniemPowtórz test SFTP kontekstu głównego, sprawdź wybrany klucz i autoryzację zdalną.
Weryfikacja klucza hosta kończy się niepowodzeniemZweryfikuj 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żePrzejrzyj zasady dostępu i mapowanie własności FUSE.
Góra jest zajętaZamknij 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.

Terminal wyświetla polecenia journalctl i reset-failed dla jednostki montowania SSHFS.
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.

Zostaw komentarz

Ustaw publiczny adres URL NextCloud, aby mógł się do siebie dodzwonić

Napraw ostrzeżenie Nextcloud o brakującym adresie wychodzącym, ustawiając jego kanoniczny adres URL i sprawdzając routing DNS, HTTPS i odwrotnego serwera proxy na samym serwerze.

Konfigurowanie buforowania Nextcloud Redis w systemie Ubuntu 24.04

Konfigurowanie buforowania Nextcloud Redis w systemie Ubuntu 24.04

Skonfiguruj APCu i Redis przez lokalne gniazdo Unix na potrzeby buforowania i blokowania plików w usłudze Nextcloud, wraz z instrukcjami dla bieżących i starszych wersji usługi Nextcloud.

Uruchom automatycznie Nextcloud Cron za pomocą timera Systemd

Sprawdź tryb cron Nextcloud, napraw usługę systemd i timer oraz zweryfikuj, czy zadania w tle są uruchamiane po uruchomieniu i co pięć minut.

Usuń ostrzeżenie o blokowaniu plików w NextCloud za pomocą Redis

Włącz niezawodne blokowanie plików Nextcloud, wybierz odpowiedni serwer Redis lub Valkey i sprawdź, czy ostrzeżenie zostanie usunięte bez ryzyka równoczesnych zmian w plikach.

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Napraw typowe błędy skanowania Nextcloud dzięki bieżącym aktualizacjom, protokołom HTTPS i HSTS, precyzyjnemu zaufaniu do odwrotnego serwera proxy i sprawdzeniu względem serwera publicznego.

Włącz szyfrowanie po stronie serwera Nextcloud z mierzalnym wpływem

Skonfiguruj Nextcloud SSE dla pamięci masowej, która tego wymaga, chroń klucze szyfrujące i zmierz wpływ transferu i procesora przed zaszyfrowaniem istniejących plików.

Dodaj wyszukiwanie pełnotekstowe Elasticsearch do NextCloud

Połącz wyszukiwarkę plików Nextcloud z Elasticsearch, zindeksuj zawartość dokumentów i wybierz konfigurację odpowiadającą Twoim potrzebom w zakresie serwera i bezpieczeństwa.

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Skonfiguruj Nextcloud tak, aby usuwał usunięte pliki po upływie określonego czasu przechowywania, niezawodnie planował zadania w tle i unikał poleceń, które usuwają śmieci każdego użytkownika.

Ostrzeżenie o braku indeksów bazy danych NextCloud

Ostrzeżenie o braku indeksów bazy danych NextCloud

Wykonaj bezpieczną naprawę OCC w Nextcloud, przejrzyj zmiany w bazie danych i sprawdź, dlaczego ostrzeżenie może nadal się pojawiać.

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zezwól na przesyłanie większych plików przez przeglądarkę Nextcloud, dostosowując ustawienia PHP, Nginx lub Apache, tymczasowego miejsca przechowywania i limitu czasu — i sprawdź, który limit blokuje plik.