SSHFS: Монтирование удаленных файловых систем через SSH

  • 9 мар 2025
  • 1 мин чтения
  • Теги: 
  • sshfs
  • ssh
  • server

Введение

SSHFS – это мощный инструмент для работы с удаленными файлами, обеспечивающий удобство и безопасность благодаря использованию SSH. Он полезен для резервного копирования, совместной работы и доступа к файлам на удаленных серверах без сложной настройки.

Установка SSHFS

sudo pacman -S sshfs

Монтирование удаленной файловой системы

  1. Создайте локальную папку для монтирования:
sudo mkdir /mnt/sshfs
  1. Подключите удаленную файловую систему:
sshfs user@remote_host:/remote_folder /mnt/sshfs
- `user` – имя пользователя на удаленном сервере
- `remote_host` – IP-адрес или доменное имя сервера
- `/remote_folder` – каталог, который нужно смонтировать
- `/mnt/sshfs` – локальная папка, куда будет смонтирован удаленный ресурс

Если используется нестандартный порт указать можно так:

sshfs -p 223 user@remote_host:/remote_folder /mnt/sshfs

Автоматическое монтирование при загрузке

Добавьте в /etc/fstab строку:

user@remote_host:/remote_folder /mnt/sshfs fuse.sshfs defaults,_netdev,user,idmap=user,allow_other,reconnect 0 0

Создайте файл с учетными данными ~/.sshfs_credentials:

echo "password" > ~/.sshfs_credentials
chmod 600 ~/.sshfs_credentials

с содежимым:

username=ТВОЙ_ЛОГИН
password=ТВОЙ_ПАРОЛЬ

Монтирование с учётом ~/.sshfs_credentials

sshfs -o password_stdin,credentials=~/.sshfs_credentials user@remote_host:/remote_folder /mnt/sshfs

Размонтирование файловой системы

fusermount -u /mnt/sshfs

Дополнительные параметры

  • -o reconnect – автоматически переподключаться при разрыве связи
  • -o allow_other – разрешить доступ другим пользователям системы
  • -o idmap=user – сопоставлять идентификаторы пользователей

Монтирование с помощью systemd

Внимание!

Авторизация на сервере должна проходить по ключу

Создаём юнит-файл systemd ~/.config/systemd/user/server.service

[Unit]
Description=Mount /mnt/sshfs/

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=sshfs -p 666 user@remote_host:/remote_folder /mnt/sshfs
ExecStop=umount /mnt/sshfs/

[Install]
WantedBy=default.target

Запуск и автозагрузка

systemctl --user daemon-reload
systemctl --user enable now server.service

Теперь /mnt/sshfs/ автоматически монтируется при загрузке.