Skip to main content

SSHFS

sshfs user@domain.net:/ /mnt/storagebox

Det här är ett dokument som beskriver användning av SSHFS för att montera en fjärrdisk över SSH på Turnkey Fileserver.

Installera sshfs:

apt update
apt install sshfs

Skapa en monteringspunkt:

mkdir -p /mnt/storagebox

Testa först manuell montering:

sshfs user@storage.domain.net:/ /mnt/storage

Används en annan port än 22 kan ex. -p 23 läggas till i kommandot.

För automatisk inloggning utan användarnamn + lösenord hos fjärrservern bör SSH-nycklar användas. Lägg över ssh-nyckeln med:

ssh-copy-id -p 23 -s user@storage.domain.net

Prova sen att SSHa och se om automagisk inloggning lirade.

Man kan prova att montera disken manuellt innan fstab uppdateras, se exempel:

sshfs -p 23 -o allow_other,uid=0,gid=0,IdentityFile=/root/.ssh/id_rsa,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 user@user.storage.domain.net:. /mnt/storage

Modifiera /etc/fstab med montering. Exempel:

#webdav
https://user.storage.domain.net /mnt/webdav davfs _netdev,user 0 0

#sshfs
sshfs#user@user.stoage.domain.net:/ /mnt/storage fuse defaults,_netdev,allow_other,uid=0,gid=0,IdentityFile=/root/.ssh/id_rsa,port=23,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 0 0

Starta sedan om daemon med:

systemctl daemon-reload

Montera nu med:

mount -a

Behöver man avmontera gör man det med umount /mnt/storage. Får man felmeddelande så lägg till -l flaggan.

Jag fick dock inte ovan att fungera. ChatGPT föreslog istället att bygga en systemd-tjänst som löser det. Se dokumentation nedan:

Dokumentation: systemd-service för SSHFS-mount av Storagebox

Översikt

Denna systemd-service monterar en fjärrlagring (Storagebox) från Hetzner via SSHFS till en lokal mapp på servern. Den använder SSH-nyckelautentisering med port 23 och har stöd för automatisk återanslutning vid nätverksavbrott.


Filstruktur och viktiga komponenter

Fil/PlatsBeskrivning
/usr/local/bin/mount-storagebox.shSkript som utför monteringen med sshfs och rätt alternativ.
/etc/systemd/system/mount-storagebox.servicesystemd-servicefil som styr monteringen.
/mnt/storageboxLokalt mount-point där Storagebox monteras.
/root/.ssh/id_rsaPrivat SSH-nyckel som används för autentisering.
root@turnkey-fileserver ~# cat /usr/local/bin/mount-storagebox.sh
#!/bin/bash
exec /usr/bin/sshfs -p 23 \
  -o allow_other,uid=0,gid=0,reconnect,IdentityFile=/root/.ssh/id_rsa,StrictHostKeyChecking=accept-new \
  -o ssh_command="ssh -vvv -p 23" \
  user@user.storage.domain.net:. /mnt/storage

root@turnkey-fileserver ~# cat /etc/systemd/system/mount-storagebox.service
[Unit]
Description=Mount Storagebox SSHFS via script
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/mount-storagebox.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target


 

Hur systemd-servicen fungerar

  1. Start:
    Vid start kör systemd servicen skriptet /usr/local/bin/mount-storagebox.sh.

  2. Montering:
    Skriptet kör sshfs med följande nyckelparametrar:

    • Använder användaren u412571-sub1 och port 23 för SSH-anslutningen.

    • Autentisering sker via /root/.ssh/id_rsa (SSH-nyckel).

    • Montering sker mot fjärrkatalogen (hemkatalog . på servern).

    • Mount sker i /mnt/storagebox.

    • Flera SSHFS-alternativ används, t.ex. allow_other, reconnect, uid=0, gid=0, StrictHostKeyChecking=accept-new för att säkerställa stabilitet och rättigheter.

    • SSH debug loggning kan aktiveras via ssh_command="ssh -vvv -p 23" för felsökning.

  3. Felhantering:

    • Om anslutningen bryts försöker SSHFS automatiskt reconnect (reconnect).

    • Servicen rapporterar fel i journalctl vid misslyckad mount.

  4. Automatisering:

    • Servicen kan startas vid boot med systemctl enable mount-storagebox.service.

    • Manuell start/stopp med systemctl start|stop mount-storagebox.service.

Viktiga kommandon

  • Starta servicen manuellt:

    systemctl start mount-storagebox.service

    Stoppa servicen:

    systemctl stop mount-storagebox.service

    Kontrollera status och loggar:

    systemctl status mount-storagebox.service
    journalctl -u mount-storagebox.service -f

    Aktivera autostart vid boot:

    systemctl enable mount-storagebox.service

Säkerhets- och rättighetsaspekter

  • SSH-nyckeln måste vara korrekt sparad i /root/.ssh/id_rsa och ha rätt filrättigheter (typ 600).

  • Mount-punkten /mnt/storagebox bör ägas av root och ha korrekta åtkomsträttigheter.

  • Använd allow_other för att tillåta andra användare än root att läsa/skriva i monterad katalog, vilket kräver user_allow_other i /etc/fuse.conf.

Felsökning

  • Vid problem, kolla systemd-loggar:

    journalctl -xeu mount-storagebox.service

    Testa manuellt mount via skriptet:

        /usr/local/bin/mount-storagebox.sh

        Kontrollera att SSH-nyckeln fungerar och att port 23 är tillgänglig.

        Kontrollera att mappen /mnt/storagebox är tom och inte används av någon annan mount.