Установка и использование SSHFS на CentOS

Что такое SSHFS
SSHFS — это файловая система поверх протокола SSH (SFTP), реализованная с помощью FUSE. Ключевая идея: любой каталог удалённого сервера можно смонтировать локально и открыть в привычных инструментах. Коротко: SSHFS = SSH + FUSE.
Важно: SSHFS использует ваш SSH-канал, поэтому все данные передаются по SSH‑шифрованию.
Установка SSHFS через yum
Самый простой способ на CentOS — установить пакет из репозитория:
yum install fuse-sshfs
После успешной установки можно переходить к разделу «Монтирование удалённой папки».
Установка SSHFS из исходников
Если вам нужна более новая версия, установите SSHFS из исходников. Пример сборки (временная папка /tmp):
cd /tmp
wget https://github.com/libfuse/sshfs/releases/download/sshfs_2.8/sshfs-2.8.tar.gz
Распакуйте архив и соберите пакет:
tar xvf sshfs-2.8.tar.gz
cd sshfs-2.8
./configure
make && make install
После make install SSHFS станет доступен в системе. Проверьте командой sshfs --version
.
Подготовка точки монтирования
Создайте локальную папку, в которую будет монтироваться удалённая директория. В примерах ниже используем /var/mnt:
mkdir -p /var/mnt
chown youruser:yourgroup /var/mnt
Замените youruser на имя локального пользователя, который будет работать с точкой монтирования.
Монтирование удалённой папки
Простой пример монтирования удалённого корня сервера 192.168.0.10 в /var/mnt:
sshfs [email protected]:/ /var/mnt/
Если вы используете нестандартный ключ или хотите задать опции, примените ключи опций через -o. Пример с параметрами устойчивости и указанием приватного ключа:
sshfs [email protected]:/remote/path /var/mnt -o IdentityFile=/home/youruser/.ssh/id_rsa,allow_other,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3
Важно:
- Опция allow_other разрешает другим локальным пользователям видеть содержимое монтированной точки. Для её работы на сервере должна быть включена строка user_allow_other в /etc/fuse.conf.
- Параметры ServerAlive* помогают автоматически восстанавливать соединение при кратковременных обрывах.
Постоянное монтирование через /etc/fstab
По умолчанию монтирование SSHFS временное и пропадает после перезагрузки. Для автоматического монтирования добавьте строку в /etc/fstab. Пример:
# Формат:
[email protected]:/remote/path /var/mnt fuse.sshfs defaults,_netdev,allow_other,IdentityFile=/home/youruser/.ssh/id_rsa,uid=1000,gid=1000,reconnect 0 0
Пояснения:
- _netdev — задерживает монтирование до инициализации сетевых интерфейсов.
- uid/gid — назначают владельца файлов в точке монтирования (используйте числовые значения пользователя/группы).
Альтернатива fstab — systemd unit с автоматическим повторным подключением или скрипт в /etc/rc.local.
Размонтирование
Корректные варианты размонтирования:
# Стандартный umount
umount /var/mnt
# Рекомендуемый для FUSE вариант
fusermount -u /var/mnt
Если процесс удерживает файловую систему, сначала выясните его через lsof или fuser и завершите процесс.
Частые проблемы и их решения
- «Permission denied» при монтировании: проверяйте права на ~/.ssh и публичный ключ на сервере. Используйте ключи, а не пароли.
- allow_other не работает: откройте /etc/fuse.conf и раскомментируйте user_allow_other.
- Файлы видимы, но операции записи запрещены: проверьте uid/gid в опциях mount и права на сервере.
- Монтирование в fstab не срабатывает при загрузке: добавьте опцию _netdev или используйте systemd automount.
Безопасность и рекомендации
- Используйте ключи SSH с защищённой passphrase и ssh-agent. Отключите вход по паролю на сервере, если возможно.
- Ограничьте доступ в ~/.ssh/authorized_keys через опцию from= или command=, если это необходимо.
- Настройте брандмауэр и мониторинг доступа к SSH (fail2ban, firewalld/iptables).
- Не используйте allow_other, если в системе есть пользователи, которым вы не доверяете.
Важно: SSHFS шифрует трафик, но права доступа и политики на сервере остаются решающими для безопасности данных.
Критерии приёмки
- Удалённая директория успешно монтируется в /var/mnt без ошибок.
- Пользователь может читать и записывать файлы согласно ожидаемым правам (uid/gid).
- Монтирование автоматически восстанавливается после краткого сетевого разрыва (параметры reconnect и ServerAliveInterval).
- Если настроено в fstab — точка доступна после перезагрузки.
Быстрая шпаргалка — команды
- Установка:
yum install fuse-sshfs
- Монтирование:
sshfs [email protected]:/remote/path /var/mnt -o IdentityFile=~/.ssh/id_rsa,allow_other,reconnect
- Размонтирование:
fusermount -u /var/mnt
илиumount /var/mnt
- Проверка проблем:
lsof +D /var/mnt
илиfuser -vm /var/mnt
Контрольные сценарии (тесты)
- Смонтировать удалённую папку, создать файл, проверить видимость файла на обеих сторонах.
- Перезапустить клиентскую машину — если используется fstab, точка должна автоматически появиться.
- Прервать сетевое соединение и восстановить — операции должны возобновиться при reconnect.
1‑строчная глоссарная справка
- SSHFS — FUSE-реализация доступа к удалённой файловой системе через SSH/SFTP.
- FUSE — механизм в Linux для реализации пользовательских файловых систем.
- SFTP — протокол передачи файлов поверх SSH.
Краткое резюме
SSHFS — удобный и безопасный способ работать с удалёнными файлами по SSH. На CentOS его можно быстро установить через yum или собрать из исходников. Для постоянного монтирования используйте /etc/fstab с опцией _netdev или systemd. Обязательно применяйте ключевую аутентификацию и проверяйте настройки /etc/fuse.conf при использовании allow_other.
Важно: тестируйте сценарии с перезагрузкой и сетевыми сбоями, чтобы убедиться в стабильности решения. Учтите безопасность — используйте ключи и ограничивайте доступ.
Похожие материалы

Ошибка «Something went wrong» в X — исправление

Сохранить стандартные значки Windows при смене тем

Discord застрял на проверке обновлений в Windows 11

No boot device found — как исправить на Windows

Как исправить Apple Pay отключён на Mac
