- Монтирование удаленной директории с помощью sshfs. Часть вторая
- Опция allow_other
- Аутентификация по ключу
- Монтирование при загрузке
- 1. Редактируем файл /etc/fstab
- 2. Создаем новый unit-файл
- 2.1. Создаем service-файл
- 2.2. Создаем mount-файл
- Как использовать SSHFS для монтирования удаленных каталогов через SSH
- Установка SSHFS
- Установка SSHFS в Ubuntu и Debian
- Установка SSHFS на CentOS
- Установка SSHFS на macOS
- Установка SSHFS в Windows
- Монтирование удаленной файловой системы
- Монтирование удаленной файловой системы в Windows
- Отключение удаленной файловой системы
- Выводы
- Монтируем удаленную файловую систему через SSH.
- Как примонтировать удаленную sftp папку в Linux
- Использование SSHFS для монтирования удаленной файловой системы
- Что такое SSHFS и для чего ее можно использовать
- Как настроить SSHFS под Linux
- 1. Инсталляция пакета SSHFS
- 2. Монтирование удаленной файловой системы в каталог на локальной машине
- Создание каталога для монтирования
- Подключение удаленной файловой системы
- 3. Монтирование удаленной папки через авторизацию на основе SSH-ключа
- Создание SSH-ключей под Linux
- Монтирование удаленной папки в /mnt/sample5
- 4. Самый простой способ монтирования удаленной файловой системы
- 5. Подключение удаленной файловой системы на постоянной основе
- Как настроить SSHFS под Windows
- Частые проблемы при использовании SSHFS
- Вместо выводов
Монтирование удаленной директории с помощью sshfs. Часть вторая
Опция allow_other
Сейчас доступ к директории /home/evgeniy/var-www/ имеет только пользователь evgeniy . Чтобы разрешить другим пользователям работать с файлами в этой директории, нужно использовать опцию allow_other :
По умолчанию это может делать только пользователь root . Чтобы разрешить другим пользователям применять эту опцию, редактируем файл /etc/fuse.conf :
Теперь можем смонтировать уделенную директорию, чтобы с файлами могли работать и другие пользователи:
Аутентификация по ключу
Давайте создадим пару ключей на клиенте и скопируем публичный ключ на сервер:
Проверяем, что теперь можем подключаться к серверу без ввода пароля:
И монтируем удаленную директорию уже без ввода пароля:
Монтирование при загрузке
Если есть необходимость автоматически монтировать удаленную директорию при загрузке системы, то есть два пути. Первый — отредактировать файл /etc/fstab и добавить новую запись о монтировании. Второй — создать новый unit-файл для системы инициализации systemd .
1. Редактируем файл /etc/fstab
Монтирование удаленной директории выглядит примерно так:
Но, чтобы это заработало, должна быть настроена аутентификация по ключу на сервере. Мы это уже сделали, но монтирование файловых систем происходит от имени пользователя root . И файл ключа операционная система будет искать в директории /root/.ssh/ . А наш ключ рсположен в домашней директории пользователя evgeniy . Поэтому нужно явно указать путь:
Кроме того, нужно один раз подключиться к серверу от имени пользователя root — чтобы был создан файл /root/.ssh/known_hosts :
Здесь используется опция монтирования uid=1000 — это значит, что владельцем файлов на клиенте будет пользователь с идентификатором 1000, другими словами — пользователь evgeniy . Неважно, кто создает файл на клиенте — на сервере его владельцем будет пользователь developer , а на клиенте — пользователь evgeniy . По сути, мы получаем тот же эффект, как при использовании опции idmap=user .
Когда мы создаем на клиенте новый файл, на самом деле мы создаем файл на сервере от имени пользователя developer . Основная группа этого пользователя — www-data (см. здесь). Эта группа существует как на сервере, так и на клиенте (хотя на клиенте веб-сервер не установлен). И идентификатор этой группы равен 33 (на клиенте и на сервере установлена ОС Ubuntu). Так что можно не задавать опцию монтирования gid=идентификатор .
2. Создаем новый unit-файл
Здесь опять возможны два варианта — создать файл .service (который просто выполнит команду монтирования), либо файл .mount (который предназначен специально для монтирования файловых систем).
2.1. Создаем service-файл
Итак, создаем новый unit-файл:
Команда sshfs выполняется от имени пользователя evgeniy , поэтому нам не нужно указывать путь к файлу ключа. Если пользователь не указан, команда будет выполнена от имени пользователя root — в этом случае указываем путь к файлу ключа:
Если по каким-то причинам нельзя настроить аутентификацию по ключу, можно использовать утилиту sshpass . Опция -f для утилиты sshpass говорит о том, что пароль доступа к серверу сохранен в файле /home/evgeniy/server.pass .
Разумеется, утилиту sshpass надо предварительно установить. Если нет желания хранить пароль в отдельном файле, можно просто передать его прямо в команде монтирования:
Сообщаем системе про новый unit-файл:
Добавляем новую службу в автозагрузку:
Теперь удаленная файловая система будет монтироваться автоматически во время загрузки системы. Кроме того, смонтировать и размонтировать удаленную файловую систему можно с помощью команд:
2.2. Создаем mount-файл
Мне пришлось изменить имя директории для монтирования удаленной файловой системы с /home/evgeniy/var-www/ на /home/evgeniy/server/ , потому что имя unit-файла должно состоять из имен директорий, показывающих путь к точке монтирования, то есть вот так home-evgeniy-server.mount .
Если по каким-то причинам нельзя настроить аутентификацию по ключу, можно использовать пароль:
Сообщаем системе про новый unit-файл:
Добавляем новую службу в автозагрузку:
Теперь удаленная файловая система будет монтироваться автоматически во время загрузки системы. Кроме того, смонтировать и размонтировать удаленную файловую систему можно с помощью команд:
Посмотреть текущее состояние можно с помощью команды:
Источник
Как использовать SSHFS для монтирования удаленных каталогов через SSH
SSHFS (SSH Filesystem) — это клиент файловой системы на основе FUSE для монтирования удаленных каталогов через SSH-соединение. SSHFS использует протокол SFTP, который является подсистемой SSH и включен по умолчанию на большинстве серверов SSH.
По сравнению с другими протоколами сетевой файловой системы, такими как NFS и Samba, преимущество SSHFS состоит в том, что он не требует дополнительной настройки на стороне сервера. Чтобы использовать SSHFS, вам нужен только SSH-доступ к удаленному серверу.
Поскольку SSHFS использует SFTP , все передаваемые данные между сервером и клиентом должны быть зашифрованы и расшифрованы. Это приводит к небольшому снижению производительности по сравнению с NFS и более высокой загрузке ЦП на клиенте и сервере.
Из этого туториала Вы узнаете, как установить клиент SSHFS в Linux, macOS и Windows и как смонтировать удаленный каталог.
Установка SSHFS
Пакеты SSHFS доступны для всех основных операционных систем, и установка довольно проста.
Установка SSHFS в Ubuntu и Debian
SSHFS доступен из репозиториев Ubuntu и Debian по умолчанию. Обновите индекс пакетов и установите клиент sshfs, набрав:
Установка SSHFS на CentOS
В CentOS и других производных от Red Hat выполните следующую команду для установки sshfs:
Установка SSHFS на macOS
Пользователи macOS могут установить клиент SSHFS, загрузив пакеты FUSE и SSHFS с сайта osxfuse или через Homebrew:
Установка SSHFS в Windows
Пользователям Windows необходимо установить два пакета: WinFsp и SSHFS-Win.
Монтирование удаленной файловой системы
Следующие инструкции применимы для всех дистрибутивов Linux и macOS.
Чтобы смонтировать удаленный каталог, пользователь SSH должен иметь к нему доступ. Команда монтирования SSHFS принимает следующий вид:
Команда sshfs прочитает файл конфигурации SSH и использует настройки для каждого хоста. Если удаленный каталог не указан, по умолчанию используется домашний каталог удаленного пользователя.
Например, чтобы смонтировать домашний каталог пользователя с именем «linuxize» на удаленном хосте с IP-адресом «192.168.121.121», сначала создайте каталог, который будет служить точкой монтирования, это может быть любое место, которое вы хотите:
Затем используйте команду sshfs для монтирования удаленного каталога:
Вам будет предложено ввести пароль пользователя. Чтобы не вводить пароль каждый раз при монтировании удаленного каталога, сгенерируйте ключи SSH и настройте вход SSH без пароля .
Теперь вы можете взаимодействовать с каталогами и файлами, расположенными на удаленном сервере, точно так же, как и с локальными файлами. Например, вы можете редактировать, удалять, переименовывать или создавать новые файлы и каталоги.
Если вы хотите навсегда смонтировать удаленный каталог, вам необходимо отредактировать файл /etc/fstab на локальном компьютере и добавить новую запись монтирования. Таким образом, когда ваша система загружается, она автоматически монтирует удаленный каталог.
Чтобы смонтировать удаленный каталог через SSHFS из /etc/fstab , используйте fuse.sshfs в качестве типа файловой системы.
При создании постоянного монтирования убедитесь, что вы можете подключить удаленный хост с помощью аутентификации на основе ключа SSH.
Монтирование удаленной файловой системы в Windows
Пользователи Windows могут использовать проводник Windows, чтобы подключить сетевой диск к удаленному каталогу на SSH-сервере.
Откройте проводник Windows, щелкните правой кнопкой мыши «Этот компьютер» и выберите «Подключить сетевой диск». Выберите диск для монтирования и в поле «Папка» введите удаленного пользователя, сервер и путь в следующем формате:
На момент написания этой статьи SSHFS-Win не поддерживает аутентификацию на основе ключей, поэтому удаленный сервер SSH должен быть настроен для принятия аутентификации на основе пароля.
Для получения более подробной информации обратитесь к руководству по SSHFS-Win .
Отключение удаленной файловой системы
Чтобы отсоединить смонтированную файловую систему, используйте команду umount или fusermount после которой fusermount каталог, в котором она была смонтирована (точка монтирования):
Выводы
В этом руководстве вы узнали, как использовать SSHFS для монтирования удаленного каталога через SSH. Это может быть полезно, если вы хотите взаимодействовать с удаленными файлами с помощью приложений на локальном компьютере.
Чтобы получить полный список опций sshfs, введите в терминале man sshfs .
Вы также можете ограничить доступ пользователей к их домашнему каталогу, настроив среду SFTP Chroot Jail и изменив порт 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пасибо за внимание!
ЗЫ Статью сначала перевел с английского на украинский, добавил немного своего и перевел на русский для Хабра 🙂
Источник
Как примонтировать удаленную sftp папку в Linux
Привет. Сегодня я покажу вам довольно интересную, и в очень многих случаях, очень полезную штуку. Я покажу, как можно примонтировать в локальную систему удаленную папку, используя только ssh, точнее sftp доступ, без использования samba, nfs и прочих прелестей.
Думаю смысла особого говорить где это может пригодится нет, так что сразу покажу как это дело можно реализовать. Делается это совсем не сложно.
Для начала необходимо установить sshfs, например в Ubuntu (все команды выполняются от rootа):
Для того, что бы примонтировать удаленную папку:
Соответсвенно /home/sanglyb — удаленная пака, /mnt — папка, куда нужно примонтировать удаленную папку.
Если используются ключи для авторизации, то команда будет иметь вид:
Если у вас используется не стандартный порт для ssh, то можно добавить ключ -p номер порта, т. е. Команда будет иметь вид:
Так же можно сделать, что бы sshfs автоматически монтировал папку, для этого в файл /etc/fstab нужно добавить строчку:
sshfs#[email protected]:/home/sanglyb /mnt fuse defaults,idmap=user,port=22,allow_other,reconnect,_netdev,users,identityfile=/root/.ssh/id_rsa 0 0
После чего, перезагрузить сервер, либо выполнить команду:
Для того что бы отмонтировать папку нужно выполнить команду:
Возможно у вас возникнет ошибка вида:
fuse: bad mount point `/mnt’: Transport endpoint is not connected
Для ее исправления можно воспользоваться командой:
Поделитесь статьей с друзьями в соц. сетях, возможно, она будет им полезна.
Источник
Использование 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 хорошее решение, если Вам нужно быстро и относительно не сложно реализовать постоянный доступ к файлам на удаленном сервере. Это удобное решение для веб-разработчиков, для совместной работы с файлами или если вы работаете удаленно. В зависимости от объема данных, которые будут храниться на сервере, под такую задачу можно использовать виртуальный сервер или арендовать выделенный сервер.
Источник