Как пошагово смонтировать удалённые файловые системы с помощью SSHFS

Последнее обновление: 17/12/2025
Автор: Исаак
  • SSHFS позволяет монтировать удаленные каталоги через SSH/SFTP с использованием FUSE без необходимости настройки дополнительных служб, таких как NFS или Samba.
  • Установка и использование SSHFS довольно просты в GNU/Linux, macOS и других операционных системах. Windowsпри условии существования сервера SSH Доступен и поддерживает FUSE или аналогичные технологии на стороне клиента.
  • Аутентификация по SSH-ключу и интеграция с файлом /etc/fstab обеспечивают автоматическое монтирование без пароля, с расширенными параметрами, такими как idmap, allow_other и reconnect.
  • SSHFS обеспечивает зашифрованный и гибкий доступ к удаленным системам, хотя и с меньшей производительностью, чем NFS в локальных сетях, и с учетом мер безопасности.

Монтирование файловых систем с помощью SSHFS

Работайте с файлами, расположенными на удалённом сервере, так же, как если бы они находились на вашем собственном компьютере. Это одна из тех маленьких радостей, от которых, попробовав однажды, уже не захочешь отказываться. Для разработки, системного администрирования или просто для создания собственного «домашнего облака» настройка удалённых файловых систем может избавить вас от множества проблем.

SSHFS — это именно тот инструмент, который делает это возможным простым и безопасным способом.Благодаря SSH и SFTP вы можете монтировать удалённые каталоги на локальном компьютере и обращаться с ними как с обычным диском, без необходимости запуска дополнительных служб, таких как NFS или Samba. В этом руководстве мы подробно рассмотрим, что такое SSHFS, как он работает, как его установить и настроить в GNU/Linux, macOS и Windows, а также какие у вас есть возможности для автоматизации и тонкой настройки его работы.

Что такое SSHFS и почему он может вас заинтересовать?

SSHFS (Secure Shell FileSystem) — это файловая система на основе FUSE, позволяющая монтировать удаленные каталоги с помощью SFTP.То есть, подсистема передачи файлов SSH. Иными словами, вся связь между вашим компьютером и сервером шифруется, аутентифицируется и инкапсулируется в рамках того же самого SSH-соединения, что и всегда.

В отличие от других сетевых файловых систем, таких как NFS или SAMBA/CIFS, SSHFS не требует настройки дополнительных служб на сервере.Для этого достаточно, чтобы на сервере работал и был доступен SSH-демон. Затем сам SSHFS-клиент, используя FUSE, представит этот удалённый ресурс как ещё одну точку монтирования в вашей системе.

Использование SSH и SFTP означает, что все данные шифруются и расшифровываются в режиме реального времени.Это относится как к серверной, так и к клиентской стороне. У этого есть свои плюсы и минусы: с одной стороны, вы получаете конфиденциальность и целостность данных; с другой стороны, это приводит к снижению производительности по сравнению с такими вариантами, как NFS в доверенных локальных сетях.

FUSE (Filesystem in Userspace) — это компонент ядра, который позволяет непривилегированным пользователям создавать файловые системы «в пользовательском пространстве».Без необходимости модификации ядра или загрузки сложных модулей. SSHFS использует FUSE для подключения к удаленной файловой системе и предоставления к ней доступа в локальном дереве каталогов.

SSHFS удаленная файловая система

Распространенные способы использования SSHFS: помимо «копирования четырех файлов»

Монтирование удалённой файловой системы с помощью SSHFS имеет бесчисленное множество практических применений.Многие из них ориентированы на то, чтобы ваши «обычные» данные были доступны, где бы вы ни находились, обеспечивая опыт, очень похожий на работу в локальной среде.

Одно из наиболее типичных применений — создание персонального облака.: сервер дома или на удаленном VPS, где вы храните свои документы, фотографии или проекты, и к которому вы получаете доступ со своего ноутбука или настольного компьютера, как если бы это был другой системный диск, без необходимости использовать сторонние сервисы.

В локальных сетях SSHFS очень полезен для обмена данными между компьютерами. LinuxНапример, доступ к папкам на другом компьютере в сети, совместное использование дерева каталогов мощного компьютера с менее мощными или подключение виртуальные машины С хозяином всё прошло без проблем.

Для разработчиков это очень удобный инструмент для редактирования кода непосредственно на удалённых серверах. (например, веб-серверы или тестовые машины) с использованием доверенного локального редактора, без необходимости ручной синхронизации с помощью rsync, scp или аналогичных программ.

Он также отлично подходит в качестве простого механизма резервного копирования.Вы можете настроить удалённый маршрут и использовать свои инструменты. резервная копия Обычно в точке монтирования, или наоборот, можно смонтировать удаленное место назначения, чтобы скопировать резервные копии с локального компьютера.

Предварительные условия: все необходимое для работы на стороне клиента и сервера.

Требования к использованию SSHFS

Основой любой конфигурации SSHFS является наличие доступного SSH-сервера и клиента с поддержкой FUSE.Дальше все сводится к деталям настройки и удобству использования.

На стороне сервера вам, как минимум, необходимо установить и запустить службу OpenSSH.В большинстве современных дистрибутивов GNU/Linux достаточно просто убедиться, что пакет установлен. openssh-сервер Оно установлено, и служба включена:

Установите SSH-сервер: sudo apt-get install openssh-server openssh-client

Используйте yum в RHEL/CentOS: sudo yum install openssh-server openssh-clients

На стороне клиента, помимо OpenSSH, вам потребуется пакет sshfs и FUSE.В Debian/Ubuntu, например, команда будет выглядеть так:

  Пошаговая инструкция по обновлению Ubuntu 24.04 до Ubuntu 26.04 LTS

Пакеты услуг для клиентов: sudo apt-get install sshfs fuse

В системах Red Hat / CentOS вам может потребоваться сначала включить EPEL.потому что sshfs не всегда находится в базовых репозиториях. После включения:

Установите sshfs: sudo yum install sshfs
или в современных версиях:
Установка с помощью dnf: sudo dnf install sshfs

Проверьте и активируйте модуль FUSE в GNU/Linux.

Перед началом сборки рекомендуется убедиться в наличии и активности модуля FUSE. в ядре вашей клиентской машины, поскольку SSHFS напрямую от него зависит.

Проверьте модуль предохранителей: lsmod | grep fuse

Если вы видите строку, похожую на «fuse 86016 3», это означает, что модуль загружен. И вы можете продолжить. Если ничего не появляется, есть две возможности: либо модуль еще не загружен, либо FUSE скомпилирован непосредственно в ядро ​​(встроен).

Проверьте, интегрировано ли это в ядро: grep -i fuse /lib/modules/$(uname -r)/modules.builtin

Если команда возвращает что-то вроде «kernel/fs/fuse/fuse.ko», можете не беспокоиться.FUSE доступен, даже если вы не видите его в выводе команды lsmod. Если вы по-прежнему не получаете никакого результата, вам придётся загрузить его явно.

Загрузить модуль: sudo modprobe fuse

Права доступа пользователей и групп в FUSE

Поскольку SSHFS работает в пользовательском пространстве, обычно вашему пользователю необходимо принадлежать к группе fuse. во избежание проблем с правами доступа при монтировании файловых систем.

В дистрибутивах Debian/Ubuntu можно использовать пакет «members», чтобы проверить, какие пользователи входят в ту или иную группу.Сначала нужно его установить:

Установить участников: sudo apt-get install members

Затем вы консультируетесь с членами группы по предохранителям.:

Список участников группы: members fuse

Если вашего имени пользователя нет в списке, вам необходимо его добавить.Например, если вас зовут Джоан:

Добавить пользователя в группу: sudo gpasswd -a joan fuse

После этого рекомендуется выйти из системы и войти снова, чтобы изменения в группе вступили в силу.После того, как вы убедитесь в правильности всех настроек, вы можете удалить пакет, если хотите. члены потому что вы использовали его только для разовой проверки.

Установите SSHFS на разных платформах.

SSHFS доступен не только в GNU/Linux, но и в macOS и Windows благодаря портам и адаптациям.Таким образом, его можно использовать практически в любой смешанной рабочей среде.

На Debian, Ubuntu и Linux Mint Монтаж сводится к следующему:

Обновить и установить (apt): sudo apt update
sudo apt install sshfs

В RHEL, CentOS и производных ОСПосле активации необходимых репозиториев вы можете выполнить следующую команду:

Обновите и установите (yum): sudo yum update
sudo yum install sshfs

В macOS наиболее удобный способ — использовать Homebrew и FUSE для macOS.Типичные этапы следующие:

Установите Homebrew (если у вас его ещё нет):
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Установите FUSE для macOS:
brew cask install osxfuse

Установите sshfs на macOS:
brew install sshfs

В Windows нет встроенной поддержки SSHFS, но можно использовать такие реализации, как win-sshfs или SSHFS-Win.которые используют компоненты типа WinFsp для предоставления доступа к файловым системам FUSE в качестве дисковых накопителей Windows.

Монтирование удалённой файловой системы с помощью SSHFS (базовое использование)

Общий синтаксис команды sshfs в GNU/Linux и macOS прост и достаточно интуитивно понятен.Обычно схема выглядит следующим образом:

Синтаксис команды: sshfs [usuario@]host:[directorio-remoto] punto-de-montaje [opciones]

Прежде всего, необходимо создать на клиентском компьютере каталог, в который будет смонтирована удаленная файловая система.Например, если вы хотите смонтировать удаленную папку в ~/desktop:

Создать точку монтирования: mkdir -p /home/joan/desktop

Полным примером ручной сборки может служить следующее::

Пример сборки: sshfs [email protected]:/home/joan /home/joan/desktop

В этой команде «[электронная почта защищена]"Идентифицирует пользователя и IP-адрес сервера.", :/home/joan Это удаленный маршрут, которым вы хотите поделиться, и /home/joan/desktop Это локальная точка монтирования, где будет отображаться контент.

Если служба SSH прослушивает порт, отличный от 22, его необходимо указать с помощью параметра -p.Например, если сервер использует порт 24:

Пользовательский порт: sshfs -p 24 [email protected]:/home/joan /home/joan/desktop

После выполнения команды вам, как правило, будет предложено ввести пароль удаленного пользователя.Если у вас еще не настроена аутентификация по паролю. Если все пройдет успешно, в файловом менеджере появится новый том, связанный с точкой монтирования, и вы сможете просматривать и редактировать файлы так же, как если бы они находились локально.

Удобные варианты монтажа с использованием SSHFS

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

  Как включить аппаратное ускорение в браузерах Linux

Для управления сопоставлением идентификаторов пользователей и групп на локальной стороне. Вы можете использовать такие параметры, как:

Принудительное использование UID/GID: -o uid=$(id -u),gid=$(id -g)

Это заставляет удалённые файлы отображаться так, как если бы они принадлежали вашему локальному пользователю.Это предотвращает конфликты разрешений, когда идентификаторы на стороне клиента и сервера не совпадают. Вы можете комбинировать это с такими опциями, как... idmap=user при использовании /etc/fstab.

Для повышения устойчивости к обрывам связи обычно используют:

Автоматическое переподключение: -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3

Другие распространенные варианты: авто_кэш для более эффективного управления кэшем атрибутов, разрешить_другое чтобы другие пользователи помимо корень может получить доступ к месту сборки, и default_permissions делегировать управление правами доступа локальному ядру.

Отключение файловой системы SSHFS

Когда узел вам больше не нужен, важно правильно его разобрать.Особенно важно убедиться, что все данные отправлены на сервер и нет незавершенных операций, если вы уже записывали данные.

Для снятия используйте устройство fusermount: fusermount -u /home/joan/desktop

Или с помощью классической команды ассемблера.:

Снять с крепления: sudo umount /home/joan/desktop

Во многих средах рабочего стола отмонтировать том можно также непосредственно из проводника файлов.Щелкнув правой кнопкой мыши по подключенному тому и выбрав опцию «Отключить» или «Извлечь».

Аутентификация по SSH-ключу для монтирования без пароля

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

На стороне клиента вы генерируете асимметричную пару ключей с помощью ssh-keygen. (без парольной фразы, если вы хотите, чтобы автоматическая сборка ничего не запрашивала):

Сгенерировать ключ: ssh-keygen -b 4096 -t rsa -C "$(whoami)@$(hostname)-$(date -I)"

-b 4096 указывает размер ключа в битах, -t rsa определяет алгоритм.Параметр -C добавляет к ключу идентификационный комментарий (например, имя пользователя, название машины и дату).

Когда ssh-keygen спросит вас, куда сохранить ключ, просто нажмите Enter, чтобы использовать путь по умолчанию (~/.ssh/id_rsa).А поле для парольной фразы можно оставить пустым, если вы хотите, чтобы процесс подключения был полностью автоматическим.

Сгенерированный открытый ключ (~/.ssh/id_rsa.pub) необходимо скопировать на сервер. и быть добавлены в файл ~ / .ssh / authorized_keys удаленного пользователя, которого вы будете использовать с SSHFS.

Скопируйте и авторизуйте открытый ключ на сервере.

Во-первых, убедитесь, что файл authorized_keys существует в каталоге ~/.ssh на сервере.Вы можете создать его с помощью:

Если ключи отсутствуют, создайте их с помощью `authorized_keys`. touch ~/.ssh/authorized_keys

На стороне клиента скопируйте открытый ключ на сервер с помощью scp или ssh-copy-id.Например, с помощью scp:

Скопируйте открытый ключ на сервер: scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh

После загрузки на сервер добавьте содержимое файла id_rsa.pub в файл authorized_keys. Для авторизации этого ключа:

Добавить ключ в authorized_keys: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

После этого, если свойства и права доступа к файлам ~/.ssh и authorized_keys указаны правильно,Вы сможете подключиться к этому серверу с клиентской стороны без ввода пароля и, соответственно, автоматически смонтировать его с помощью SSHFS, используя соответствующую опцию. Идентитифиле.

Автоматическое монтирование файловых систем SSHFS с помощью файла /etc/fstab

Если вы хотите, чтобы удалённая файловая система автоматически монтировалась при каждом запуске компьютера без вашего вмешательства.Для определения места монтирования SSHFS можно использовать файл /etc/fstab.

На клиентском компьютере отредактируйте файл /etc/fstab с правами администратора.:

Отредактируйте файл fstab: sudo nano /etc/fstab

Примером типичной сборочной линии с SSHFS может служить...:

Полный пример файла fstab: [email protected]:/home/joan /home/joan/desktop fuse.sshfs defaults,idmap=user,_netdev,users,IdentityFile=/home/joan/.ssh/id_rsa,allow_other,reconnect 0 0

В этой строке вы указываете удаленный ресурс, локальную точку монтирования и тип файловой системы (fuse.sshfs)., за которым следует набор вариантов:

по умолчанию: применяет стандартные параметры монтирования (чтение/запись, выполнение и т. д.).
idmap=user: заставляет считать, что владельцем файлов является ваш локальный пользователь.
_netdevЭто указывает на то, что система зависит от сети, которая помогает systemd управлять порядком выполнения операций. Загрузка.
пользователей: позволяет любому пользователю монтировать/размонтировать ресурс.
Идентитифиле: путь к закрытому ключу для подключения без пароля.
разрешить_другое: предоставляет доступ пользователям, отличным от того, кто его монтирует (требуется настройка FUSE).
воссоединитьсяПовторите попытку подключения, если оно прервётся.

В дистрибутивах, использующих systemd, может быть полезно использовать опцию noauto в сочетании с x-systemd.automount.чтобы сборка активировалась при первом доступе:

Пример файла fstab с автоматическим монтированием: [email protected]:/home/joan /home/joan/desktop fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/joan/.ssh/id_rsa,allow_other,reconnect 0 0

Следует помнить, что синтаксическая ошибка или неправильно заданный параметр в файле fstab могут помешать нормальной загрузке системы.Поэтому рекомендуется сделать резервную копию файла /etc/fstab перед тем, как вносить в него изменения, и иметь под рукой загрузочный USB-накопитель на случай, если потребуется исправить проблему в автономном режиме.

  Что такое модальный редактор Helix Editor и почему он набирает так много поклонников?

Настройте FUSE для использования параметра allow_other.

Параметр allow_other, очень полезный для совместного использования точки монтирования с другими пользователями, не работает, если вы явно не включите его в конфигурации FUSE..

В большинстве дистрибутивов достаточно отредактировать файл /etc/fuse.conf. от имени root:

Отредактируйте файл fuse.conf: sudo nano /etc/fuse.conf

В файле найдите строку, содержащую "#user_allow_other", и раскомментируйте её.Оставляю всё как есть:

user_allow_other

Сохраните изменения и закройте редактор.С этого момента вы сможете использовать опцию allow_other в настройках монтирования SSHFS и в файле /etc/fstab без риска её отклонения конфигурацией.

Использование SSHFS в Windows: win-sshfs и SSHFS-Win Manager

В Windows использование SSHFS предполагает применение сторонних инструментов, которые интегрируют FUSE с собственной файловой системой операционной системы.Наиболее распространенные подходы — это win-sshfs и комбинация SSHFS-Win + WinFsp, часто управляемые с помощью удобного графического интерфейса.

Win-SSHFS долгое время был одним из самых простых вариантов.Загружается установочный файл, содержащий все необходимое для монтирования удаленного каталога через SSH, как если бы это был диск Windows. После установки просто откройте приложение, создайте новую запись, заполните хост, порт, имя пользователя, пароль, путь к удаленному каталогу и букву диска, а затем нажмите «Монтировать».

Более современной альтернативой является SSHFS-Win в сочетании с WinFsp и, вдобавок ко всему, SSHFS-Win Manager в качестве графического интерфейса.WinFsp выступает в качестве слоя, позволяющего Windows взаимодействовать с файловыми системами FUSE, SSHFS-Win обеспечивает собственную поддержку SSHFS, а SSHFS-Win Manager предлагает графический интерфейс для создания и управления точками монтирования без использования командной строки. команды.

Типичный рабочий процесс с SSHFS-Win Manager очень похож на то, как это делал бы пользователь с графическим интерфейсом в Linux.Вы добавляете новое подключение, указываете IP-адрес или домен сервера, порт SSH (обычно 22), ваше имя пользователя и пароль или ключ, выбираете удаленный путь (/, /var/www, ~/… в зависимости от ваших потребностей) и назначаете букву диска, чтобы он отображался в «Этот компьютер».

После монтирования удаленный каталог отображается в проводнике Windows как обычный диск.А еще вы можете перетаскивать файлы, переименовывать, редактировать и удалять их, почти как если бы работали на локальном жестком диске.

Рекомендации по использованию, производительность и безопасность SSHFS

SSHFS очень удобен, но важно помнить о его ограничениях и некоторых рекомендациях по безопасности.особенно если вы собираетесь создавать каталоги с конфиденциальными данными или работать через Интернет.

С точки зрения производительности, решающее значение имеют шифрование и задержка в сети.В быстрых локальных сетях с относительно мощными серверами производительность будет достаточно хорошей, хотя в большинстве сценариев она будет ниже, чем у NFS. В интернете задержка может быть довольно заметной при операциях с большим количеством небольших файлов.

В целях безопасности монтирование удалённых каталогов в производственной среде с помощью fstab и постоянных точек монтирования не всегда является хорошей идеей.Поскольку взлом клиентской части может открыть прямой доступ к серверу, предпочтительнее ограничить доступ, использовать chroot-пользователей или внедрить системы с очень строгими ограничениями прав доступа для критически важных сред.

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

Наконец, если вы монтируете корневые пользовательские каталоги или особо важные пути, примите чрезвычайные меры предосторожности.Обычно принято работать с пользователем без повышенных привилегий и делегировать деликатные операции пользователю sudo на самом сервере, вместо того чтобы предоставлять полный доступ к корневому каталогу удаленной системы.

SSHFS становится невероятно универсальным инструментом для управления, разработки и обмена данными на удаленных серверах.Особенно это актуально, если у вас уже есть работающий SSH-сервис и вы хотите избежать дополнительных настроек NFS или Samba. При грамотном использовании, с грамотно управляемыми ключами и правильными параметрами FUSE и fstab, это позволяет обеспечить быстрый доступ к удаленным системам, как к любой другой папке на вашем компьютере, без ущерба для безопасности или стабильности.