+++ title = "SSHFS: Монтирование удаленных файловых систем через SSH" date = 2025-03-09 description = "SSHFS (SSH File System) позволяет монтировать удаленные файловые системы через SSH, обеспечивая безопасный и удобный доступ к файлам на удаленных серверах." [taxonomies] tags = ["sshfs", "ssh", "server"] [extra] quick_navigation_buttons = true toc = false mermaid = false social_media_card = "social_cards/index-sshfs.webp" +++ ## Введение [SSHFS](https://github.com/libfuse/sshfs) – это мощный инструмент для работы с удаленными файлами, обеспечивающий удобство и безопасность благодаря использованию SSH. Он полезен для резервного копирования, совместной работы и доступа к файлам на удаленных серверах без сложной настройки. ## Установка SSHFS ```bash sudo pacman -S sshfs ``` ## Монтирование удаленной файловой системы 1. Создайте локальную папку для монтирования: ```bash sudo mkdir /mnt/sshfs ``` 2. Подключите удаленную файловую систему: ```bash sshfs user@remote_host:/remote_folder /mnt/sshfs ``` - `user` – имя пользователя на удаленном сервере - `remote_host` – IP-адрес или доменное имя сервера - `/remote_folder` – каталог, который нужно смонтировать - `/mnt/sshfs` – локальная папка, куда будет смонтирован удаленный ресурс Если используется нестандартный порт указать можно так: ```bash sshfs -p 223 user@remote_host:/remote_folder /mnt/sshfs ``` ## Автоматическое монтирование при загрузке Добавьте в `/etc/fstab` строку: ```ini user@remote_host:/remote_folder /mnt/sshfs fuse.sshfs defaults,_netdev,user,idmap=user,allow_other,reconnect 0 0 ``` Создайте файл с учетными данными `~/.sshfs_credentials`: ```bash echo "password" > ~/.sshfs_credentials chmod 600 ~/.sshfs_credentials ``` с содежимым: ```ini username=ТВОЙ_ЛОГИН password=ТВОЙ_ПАРОЛЬ ``` Монтирование с учётом `~/.sshfs_credentials` ```bash sshfs -o password_stdin,credentials=~/.sshfs_credentials user@remote_host:/remote_folder /mnt/sshfs ``` ## Размонтирование файловой системы ```bash fusermount -u /mnt/sshfs ``` **Дополнительные параметры** - `-o reconnect` – автоматически переподключаться при разрыве связи - `-o allow_other` – разрешить доступ другим пользователям системы - `-o idmap=user` – сопоставлять идентификаторы пользователей ## Монтирование с помощью systemd {{ admonition(type="danger", icon="tip", title="Внимание!", text="Авторизация на сервере должна проходить по ключу") }} Создаём юнит-файл systemd `~/.config/systemd/user/server.service` ```ini [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 ``` # Запуск и автозагрузка ```bash systemctl --user daemon-reload systemctl --user enable now server.service ``` Теперь `/mnt/sshfs/` автоматически монтируется при загрузке.