1. Блог
  2. Мануали

SSHFS: монтування віддаленої папки через SSH

SSHFS: монтування віддаленої папки через SSH

SSHFS підключає каталог віддаленого сервера як звичайну локальну папку. На сервері нічого встановлювати не потрібно: достатньо робочого SSH. Це зручно, коли потрібно редагувати файли на сервері у звичному редакторі або швидко скопіювати дані.

Встановлення

Ubuntu і Debian:

sudo apt install sshfs

Fedora, AlmaLinux, Rocky Linux:

sudo dnf install fuse-sshfs

Arch Linux:

sudo pacman -S sshfs

macOS: встановіть macFUSE і пакет SSHFS із сайту проєкту macFUSE.

Windows: встановіть WinFsp і SSHFS-Win, після чого мережевий диск підключається в Провіднику за адресою на кшталт \\sshfs\user@203.0.113.10.

Монтування

Створіть точку монтування й підключіть віддалений каталог:

mkdir -p ~/remote
sshfs user@203.0.113.10:/var/www ~/remote

Якщо шлях після двокрапки не вказано, підключиться домашній каталог користувача. Тепер із файлами в ~/remote можна працювати як із локальними.

Корисні параметри

sshfs user@203.0.113.10:/var/www ~/remote \
  -p 2222 \
  -o IdentityFile=~/.ssh/id_ed25519 \
  -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3
  • -p 2222 — нестандартний порт SSH;
  • IdentityFile — вхід за ключем замість пароля;
  • reconnect разом із ServerAliveInterval — автоматичне перепідключення після обриву зв’язку; без них у разі втрати мережі папка «зависає»;
  • allow_other — доступ до папки для інших користувачів системи. Потребує рядка user_allow_other у /etc/fuse.conf;
  • ro — підключення лише для читання.

Якщо сервер описано в ~/.ssh/config, як показано в статті про підключення по SSH, команда скорочується до sshfs web:/var/www ~/remote.

Відключення

fusermount -u ~/remote

У macOS використовуйте umount ~/remote. Якщо папка зайнята, знайдіть процес командою lsof +D ~/remote або відключіть примусово: fusermount -uz ~/remote.

Автомонтування через fstab

Додайте рядок у /etc/fstab:

user@203.0.113.10:/var/www /mnt/remote fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,ServerAliveInterval=15,IdentityFile=/home/user/.ssh/id_ed25519,allow_other 0 0

Параметри noauto,x-systemd.automount підключають каталог під час першого звернення до нього, а не під час завантаження — система не чекатиме мережу на старті. Ключ має бути без пароля, а відбиток сервера — уже збережений у known_hosts користувача root.

Застосуйте налаштування:

sudo systemctl daemon-reload
sudo systemctl restart remote-fs.target

Обмеження

  • Швидкість. Кожна операція з файлом іде через мережу й шифрування. Для каталогів із тисячами дрібних файлів SSHFS помітно повільніший за NFS.
  • Не для баз даних. Не розміщуйте на SSHFS файли СУБД та інші дані з інтенсивним записом.
  • Розвиток проєкту. SSHFS перебуває в режимі підтримки: нові функції не додаються, але пакет залишається в репозиторіях усіх основних дистрибутивів і стабільно працює.

Альтернативи

Відеоінструкція

YouTube video
#sshfs#ssh#mount#linux

Ця стаття іншими мовами:EnglishРусский