Введение
SSHFS — хороший инструмент для подключения сетевых дисков. При стабильном сетевом соединении связь с таким сетевым диском может держаться неделями без разрыва. Несколько проектов могут использовать один и тот же диск с помощью этого решения.
Зачем это мне?
Есть несколько сценариев использования, для которых потребуется сетевой диск:
- Объединение данных между двумя серверами. При сетевом соединении данные не повреждаются в случае, если они одновременно не используются на запись на обеих машинах.
- Передача данных на сервер, представление файлов сайта прямо в обозревателе файлов.
- Резервное копирование необходимых данных.
Как поднять SSHFS сервер
Поднять SSHFS сервер проще простого, если функционирует SSH доступ и SFTP доступ, то дополнительных действий не требуется. SSHFS — это нечто вроде продолжения технологии SFTP.
Привязывание к каталогам
Вы можете привязать определённого пользователя к конкретной директории на удалённой системе. Это может быть выполнено путём редактирования файла sshd_config:
/etc/ssh/sshd_config ..... Match User "someuser" ChrootDirectory "/chroot/%u" ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no .....
SSHFS для Linux
С клиентом для Linux дело обстоит просто. Сначала установите его командой для Ubuntu:
sudo apt update && sudo apt update && sudo apt install sshfs
Для CentOS:
yum install sshfs
После установки можете осуществлять подключение к серверу командой:
sshfs login@ipaddress:route mountpoint -p port
Вместе login укажите логин на сервере, к которому подключаетесь, вместо ipaddress укажите IP адрес вместо route укажите путь на сервере, к которому подключаетесь. mountpoint является точкой монтирования в локальной ОС. Папка должна существовать! Вместо port укажите порт, на котором слушает SSH сервер.
SSHFS также умеет конвертировать ID локального пользователя, подробнее смотрите
в man по sshfs.
Для размонтирования используйте команду:
fusermount -u mountpoint
Где mountpoint — точка подключения, которую указывали при подключении.
SSHFS клиент для Windows
С клиентом для Windows могут быть сложности. Например, именование файлов в ext4 допустимо в верхнем и нижнем регистре, а Windows не понимает разницы между ними. Например, файлы README и readme для Windows будут считаться одним файлом. Так что будьте внимательны при использовании SSHFS на Windows.
Вы можете использовать графический интерфейс для упрощения работы с SSHFS в Windows. Этим способом и будем пользоваться.
Для начала скачайте и установите программы:
- sshfs-win GitHub
- Стабильную версию WinFsp
- sshfs-win-manager
После того, как всё установили, у Вас появится новая установленная программа. Найдите её в меню пуск и запустите. Она называется SSHFS Win Manager.
Нажмите кнопку "Add connection" и заполните поля, указав настройки подключения:
- В поле NAME укажите удобное имя. Под ним диск будет отображаться в проводнике.
- В поле IP/Host укажите IP адрес а в поле Port укажите TCP порт, по которому слушает SSH-сервер. Если используется проброс портов, то указываете порт, на который сделан проброс (порт для внешнего мира).
- В поле USER укажите пользователя в Linux на сервер, к которому подключаетесь.
- В выборе Authentification method выберите Password, если используется авторизация по паролю или Private key (file), если используется SSH RSA ключ.
- В поле PASSWORD укажите пароль, но только в случае, если используется авторизация по паролю.
- В поле KEY FILE укажите путь к id_rsa Подробнее про этот файл читайте в инструкции Использование SSH с доступом по ключам.
- В поле Remote укажите директорию, под которой будет подан сетевой диск. То есть указанная директория превратится в сетевой диск.
- В выборе Drive Letter выберите букву диска, под которой диск должен отображаться в проводнике. Будьте внимательны, он не должен повторяться, то есть буква диска должна быть уникальной!
Нажмите Save, а затем на значок вставки штепселя в розетку. Проверьте, появился ли новый диск в проводнике. Если да, значит настроили всё верно. Теперь его можно использовать.