- sshfs — подключаем удаленные папки по ssh
- Монтируем удаленную файловую систему через SSH.
- Использование SSHFS для монтирования удаленной файловой системы
- Что такое SSHFS и для чего ее можно использовать
- Как настроить SSHFS под Linux
- 1. Инсталляция пакета SSHFS
- 2. Монтирование удаленной файловой системы в каталог на локальной машине
- Создание каталога для монтирования
- Подключение удаленной файловой системы
- 3. Монтирование удаленной папки через авторизацию на основе SSH-ключа
- Создание SSH-ключей под Linux
- Монтирование удаленной папки в /mnt/sample5
- 4. Самый простой способ монтирования удаленной файловой системы
- 5. Подключение удаленной файловой системы на постоянной основе
- Как настроить SSHFS под Windows
- Частые проблемы при использовании SSHFS
- Вместо выводов
sshfs — подключаем удаленные папки по ssh
Для того, чтобы на наш компьютер (Linux) подключить папку с удаленного сервера (Linux), можно использовать sshfs.
Установка простая, пример для CentOS ниже (для Ubuntu/Debian вроде так: apt-get install sshfs ).
Внимание! Все команды ниже выполняются на клиенте! Сервер вообще не в курсе, что вы что-то монтируете — для сервера вы просто заходите по ssh.
Например, на сервере 192.168.15.22 запущен sshd на порте 2113. Подключаться можно с именем пользователя vasya.
На этом удаленном сервере есть папка /home/vasya/docs.
На нашем компьютере создаем папку (например, /mnt/vasya_from_work), в которую будем подключать папку с сервера (/home/vasya/docs). Запускаем команду:
$ sshfs -p 2113 vasya@192.168.15.22:/home/vasya/docs/ /mnt/vasya_from_work/
При этом вы должны учитывать права доступа к содержимому папки. То, что не Васино в папке на сервере, вы не увидите в примонтированной папке на своем компьютере.
Если при попытке примонтировать папку появляются ошибки монтирования fuse (могут быть разными), то добавьте своего пользователя в группу fuse:
После этого надо выйти из Васи и снова войти в него (иначе usermod не подействует и под Васей вы не сможете, возможно, примонтировать удаленную папку).
Теперь вы можете без прав супер пользователя монтировать удаленные папки.
После того, как примонтировали диск, можете просмотреть список дисков:
Другие пользователи вашим примонтированным «диском» воспользоваться не смогут.
$ fusermount -u /mnt/vasya_from_work/
Что еще? Можно настроить sshfs на автомонтирование через /etc/fstab. Наверное, это удобно кому-то. Мне это не нужно было и я не проверял. К тому же, не ясно, как эта штука себя ведет, если сеть была недоступна некоторое время. Для резервного копирования через ssh можно использовать rsync. Для доступа к файлам WinSCP или другие клиенты. Это просто еще один вариант как можно решать задачи по копированию файлов через ssh.
Источник
Монтируем удаленную файловую систему через SSH.
Во время работы часто приходится работать с удаленными файлами, часто через ssh. Gnome позволяет подключиться и работать с данными с помощью утилиты Places->Connect to Server, но, к сожалению, таким образом могут работать не все программы… Vim, например, а так как это основной мой редактор — я искал способ сделать это. И нашел 🙂
Все, что написано дальше — касается Linux, в частности Ubuntu Linux.
Итак, способ: смонтировать удаленую систему так же, как вы монтируете локальные диски. Сделать такое возможно с поомщью утилиты sshfs.
Для начала надо ее установить вместе с несколькими зависимостями:
$sudo apt-get install sshfs
Потом нужно добавить себя в группу пользователей fuse. Сделать это надо, потому что программа устанавливвается в системные папки, в которые обычным пользователям доступ запрещен. Так, добавляем себя в группу:
$sudo adduser fuse
Потом создаем директорию для монтирования, например, на рабочем столе:
Теперь надо выйти с терминала и зайти вновь. Все, теперь мы в группе fuse. Пробуем соединиться с сервером:
Если соединение идет не по ключу то, скорее всего, у вас появится запрос на введение пароля с удаленной машины.
Если же вы сразу не получили ошибку fusermount: fuse device not found, try ‘modprobe fuse’ first — проверяйте директорию, там должны появиться файлики :). Если же вылезла ошибка — значит модуль ядра fuse не загрузился автоматом, пробуем загрузить вручную:
$sudo modprobe fuse
Пробуем установить соединение еще раз.
Чтобы отмонтировать это все дело, надо выполнить следующее:
Чтобы каждый раз не вводить такую кучу комманд — создаем(если нету) и редактируем файл
/.bash_aliases, добавляя в конец такие строчки:
alias testssh=’sshfs user@example.com:/stuff
/Desktop/test_ssh’
alias testssh_umount=’fusermount -u
Теперь вы сможете монтировать удаленную машину командой testssh, а размонтировать — testssh_umount 🙂
Cпасибо за внимание!
ЗЫ Статью сначала перевел с английского на украинский, добавил немного своего и перевел на русский для Хабра 🙂
Источник
Использование SSHFS для монтирования удаленной файловой системы
Что такое SSHFS и для чего ее можно использовать
SSHFS (aнгл, Secure Shell FileSystem) — это клиент файловой системы, предназначенный для того, чтобы смонтировать удаленный каталог на сервере с помощью протокола SFTP (англ. SSH File Transfer Protocol) и модуля FUSE (англ. filesystem in userspace). SFTP является более безопасным протоколом передачи данных, по сравнению с FTP, потому что он работает на базе SSH (aнгл, Secure Shell). Кроме того, при использовании sshfs от пользователя совсем не требуются профессиональные навыки настройки серверных ОС, достаточно правильно настроить sshfs на своем компьютере и иметь доступ к серверу. SSHFS удобен для тех пользователей, которым нужен постоянный доступ к удаленной файловой системе, как к локальной папке на своем компьютере. Например, для программистов, которые работают над сложным проектом, при этом файлы с исходным кодом находятся на удаленном сервере компании.
Как настроить SSHFS под Linux
Выполним настройки sshfs на локальной машине под операционной системой Ubuntu 20.04 1 LTS. Удаленная файловая система находится на сервере под управлением Ubuntu 18.04 LTS. Все форматы команд будем описывать для ОС на базе Debian/Ubuntu. Если у вас другие ОС, то адаптируйте наши инструкции, согласно пользовательской документации для этих ОС.
1. Инсталляция пакета SSHFS
В первую очередь, необходимо установить пакет sshfs, как на локальном компьютере, так и на удаленном сервере. Для этого, откроем терминал и выполним следующие команды:
2. Монтирование удаленной файловой системы в каталог на локальной машине
Создание каталога для монтирования
На следующем этапе, создадим точку монтирования на нашем компьютере. Именно в эту папку мы будем монтировать удаленную файловую систему.
На данный момент наш каталог пустой
Подключение удаленной файловой системы
Следующий шаг — подключение удаленной директории в каталог /mnt/sample5. Покажем на примере корневого раздела (можно смонтировать и отдельную удаленную папку), выполним команду:
где root — логин для доступа на удаленный сервер, X.X.X.X — IP адрес сервера.
Эти данные вам должен сообщить ваш провайдер, например FREEhost (после заказа услуги аренды VPS). Затем потребуется ввести пароль доступа к удаленному серверу (он будет вам предоставлен в информационном письме от хостинговой компании FREEhost). Соединение с сервером установлено, и удаленная файловая система смонтирована в локальную папку mnt/sample5, см. скриншот:
В написании команды можно использовать различные параметры (например, allow_other,default_permissions и т.д.), полный перечень их можно узнать, применив команду man:
Если все действия выполнены правильно, то можно увидеть список каталогов файловой системы удаленного сервера в нашей локальной папке /mnt/sample5:
Для того, чтобы увидеть точку монтирования удаленной файловой системы, вам нужно применить команду:
3. Монтирование удаленной папки через авторизацию на основе SSH-ключа
Если у вас настроен безопасный доступ на удаленный сервер с помощью SSH-ключа, то подключить удаленную папку возможно даже без ввода пароля.
Создание SSH-ключей под Linux
Чтобы создать пару SSH-ключей (приватный и публичный) под Ubuntu выполним следующую операцию:
Примечание: У вас должен быть установлен пакет openssh.
Затем сохраните файл с ключами в директории «по умолчанию», просто нажав клавишу Enter. Для дополнительной безопасности ключа будет предложено ввести кодовое слово, если эта опция вам не нужна, смело пропускайте данный шаг. На скриншоте ниже показан процесс генерации ключей в папку «по умолчанию», где они будут сохранены.
В результате, создана пара ключей: приватный ключ — id_rsa, публичный ключ — id_rsa.pub. Для просмотра файла с вашим публичным ключом примените команду:
Для добавления ключа на удаленный сервер выполните следующую команду:
В итоге, ваш ключ успешно добавлен на сервер. Проверить подключение к удаленному серверу с помощью SSH-ключа можно будет таким образом:
Примечание: Под Windows SSH-ключи можно сгенерировать с помощью программы PuTTY.
Монтирование удаленной папки в /mnt/sample5
После настройки авторизации на сервере по SSH-ключу, приступим к монтированию удаленной файловой системы в нашу локальную папку, для этого выполним в терминале:
Примечание: в некоторых случаях необходимо прописывать полный путь к папке с ключами вместо
Результат монтирования можно увидеть в локальной папке /mnt/sample5 или проверить точку монтирования, как мы это делали в предыдущих пунктах нашей статьи.
4. Самый простой способ монтирования удаленной файловой системы
Если у вас мало опыта работы с терминалом Линукс, то подключить удаленный сервер можно с помощью специальных настроек в графической оболочке ОС. Для этого необходимо зайти в файловый менеджер и выбрать опцию «+Другие места»:
- Внизу, в строке «Подключиться к серверу», выбрать протокол SSH, ввести адрес вашего сервера в формате: ssh://X.X.X.X;
- В появившемся диалоговом окне ввести данные для доступа на сервер (имя пользователя и пароль);
- Нажать кнопку «Подключиться».
После успешного подключения, вам будет доступен удаленный сервер в виде еще одного диска вашей файловой системы. Правда, при каждой перезагрузке ОС, для доступа к нему нужно будет вводить логин и пароль. В удаленной папке теперь можно работать с конкретным файлом таким же образом, как и на вашем локальном компьютере. При необходимости, размонтировать диск можно опцией «Размонтировать» в меню.
5. Подключение удаленной файловой системы на постоянной основе
В некоторых случаях, удобный вариант — это монтирование удаленной папки на постоянной основе, т.е. чтобы при каждой загрузке ОС, она была уже подключена и готова к работе. Все настройки требуется проводить под пользователем root, для входа с правами root, выполним:
На следующем этапе вам необходимо сгенерировать пару SSH-ключей (см. инструкцию выше) и сохранить их в папке /root/.ssh/id_rsa. После этого следует выполнить тестовую проверку монтирования:
Если в ручном режиме монтирование удалось, размонтируем удаленную папку:
Сейчас приступим к редактированию файла /etc/fstab с помощью редакторов Nano или Vim:
Впишем в самом конце файла следующую строку (приведен базовый синтаксис команды):
Затем потребуется проверить, происходит ли монтирование из файла /etc/fstab:
Если подключение удаленной папки прошло успешно, то опять размонтируем ее и выполним перезагрузку системы. После перезагрузки нужно проверить точку монтирования командой:
Стоит отметить, что основной синтаксис вышеприведенной команды работает только для пользователя с правами root. В ОС Linux не рекомендуется постоянно работать под root по соображениям безопасности. Поэтому лучше сразу настроить /etc/fstab таким образом, чтобы любой пользователь смог работать с удаленной директорией на постоянной основе.
В таком случае, вам стоит прописать команду в /etc/fstab с дополнительными параметрами:
Параметр _netdev обозначает, что будет подключено именно сетевое устройство.
Примечание: Если для вашей версии ОС Линукс не работает автомонтирование ни с основным синтаксисом команды, ни с параметрами, приведенными выше, то вам стоит уточнить дополнительные параметры в рабочей документации к вашим версиям ОС.
Как настроить SSHFS под Windows
Подключить удаленную папку по sshfs возможно и под ОС Windows, правда с помощью специальных программ и утилит. На специализированных форумах можно встретить рекомендации по использованию утилиты win-sshfs вместе с библиотеками Docan. Однако, эта утилита не всегда совместима с новыми версиями библиотек, может нестабильно работать под Windows 10. Поэтому лучше поискать более удобные альтернативы. Такой программой является ExpanDrive, после скачивания утилиты с сайта разработчика, установите ее под Windows 10, запустите и выполните простые настройки:
- В меню «ExpanDrive» выберите пункт «New Connection«, затем SSH (SFTP);
- В открывшемся окне, заполните данные доступа к вашему удаленному серверу (логин, IP-адрес сервера, пароль к серверу, номер порта и др.);
- Выберите букву для обозначения удаленного диска в вашей файловой системе и его название (опционально). По умолчанию — это будет диск Z:
- Отметьте опцию «Automatically Mount as Drive«, теперь при каждой перезагрузке ОС удаленная файловая система будет монтироваться автоматически, как еще один логический диск.
- Нажмите кнопку «Save«, после соединения с сервером ваш удаленный диск будет подключен.
Частые проблемы при использовании SSHFS
SSHFS просто настраивается и удобен в использовании. Однако, встречаются и технические проблемы при настройке sshfs и в процессе работы с ним. Перечислим наиболее распространенные:
- Качество канала и скорость соединения. Даже при небольших сбоях, могут происходить зависания, в результате чего удаленная папка будет недоступна и размонтировать ее с помощью команд будет невозможно. В этом случае, может помочь только перезагрузка ОС.
- Проблемы с информационной безопасностью. Несмотря на использование безопасного протокола SSH, все равно могут появиться уязвимости и угрозы ИБ.
- Проблемы в настройке SSHFS под Linux на постоянной основе. У пользователей, как правило, различные версии и разновидности ОС Линукс, поэтому команды для прописывания в файле /etc/fstab не всегда правильно работают у всех пользователей, у некоторых они требуют прописывания дополнительных параметров и настроек.
Вместо выводов
SSHFS хорошее решение, если Вам нужно быстро и относительно не сложно реализовать постоянный доступ к файлам на удаленном сервере. Это удобное решение для веб-разработчиков, для совместной работы с файлами или если вы работаете удаленно. В зависимости от объема данных, которые будут храниться на сервере, под такую задачу можно использовать виртуальный сервер или арендовать выделенный сервер.
Источник