- Монтирование удаленной директории с помощью sshfs. Часть вторая
- Опция allow_other
- Аутентификация по ключу
- Монтирование при загрузке
- 1. Редактируем файл /etc/fstab
- 2. Создаем новый unit-файл
- 2.1. Создаем service-файл
- 2.2. Создаем mount-файл
- Монтируем удаленную файловую систему через SSH.
- Как монтировать и размонтировать файловые системы в Linux
- Как вывести список подключенных файловых систем
- Монтирование файловой системы
- Монтирование файловой системы с помощью / etc / fstab
- Установка USB-накопителя
- Монтирование файлов ISO
- Монтирование NFS
- Отключение файловой системы
- Ленивое отключение
- Размонтировать принудительно
- Выводы
- Монтирование удаленных файловых систем при помощи SSHFS
- Установка SSHFS
- В Ubuntu/Debian
- В Mac OSX
- В Windows
- Монтирование удаленной файловой системы
- Демонтирование удаленной файловой системы
- Постоянное монтирование удаленной файловой системы
- Монтирование удаленной файловой системы Windows при помощи Win-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-файл:
Добавляем новую службу в автозагрузку:
Теперь удаленная файловая система будет монтироваться автоматически во время загрузки системы. Кроме того, смонтировать и размонтировать удаленную файловую систему можно с помощью команд:
Посмотреть текущее состояние можно с помощью команды:
Источник
Монтируем удаленную файловую систему через 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пасибо за внимание!
ЗЫ Статью сначала перевел с английского на украинский, добавил немного своего и перевел на русский для Хабра 🙂
Источник
Как монтировать и размонтировать файловые системы в Linux
В операционных системах Linux и UNIX вы можете использовать команду mount для подключения (монтирования) файловых систем и съемных устройств, таких как флэш-накопители USB, в определенной точке монтирования в дереве каталогов.
Команда umount отсоединяет (размонтирует) смонтированную файловую систему от дерева каталогов.
В этом руководстве мы рассмотрим основы подключения и отключения различных файловых систем с помощью команд mount и umount .
Как вывести список подключенных файловых систем
При использовании без аргументов команда mount отобразит все подключенные в данный момент файловые системы:
По умолчанию вывод будет включать все файловые системы, включая виртуальные, такие как cgroup, sysfs и другие. Каждая строка содержит информацию об имени устройства, каталоге, в который оно смонтировано, типе файловой системы и параметрах монтирования в следующей форме:
Чтобы отобразить только определенные файловые системы, используйте параметр -t .
Например, чтобы распечатать только разделы ext4, которые вы должны использовать:
Монтирование файловой системы
Чтобы смонтировать файловую систему в указанном месте (точке монтирования), используйте команду mount в следующей форме:
После присоединения файловой системы точка монтирования становится корневым каталогом смонтированной файловой системы.
Например, чтобы смонтировать файловую систему /dev/sdb1 каталог /mnt/media вы должны использовать:
Обычно при монтировании устройства с общей файловой системой, такой как ext4 или xfs команда mount автоматически определяет тип файловой системы. Однако некоторые файловые системы не распознаются и требуют явного указания.
Используйте параметр -t чтобы указать тип файловой системы:
Чтобы указать дополнительные параметры монтирования , используйте параметр -o :
Несколько вариантов могут быть представлены в виде списка, разделенного запятыми (не вставляйте пробел после запятой).
Вы можете получить список всех вариантов монтирования, набрав в терминале man mount .
Монтирование файловой системы с помощью / etc / fstab
Предоставляя только один параметр (каталог или устройство) команде mount , она будет читать содержимое файла конфигурации /etc/fstab чтобы проверить, указана ли указанная файловая система в списке или нет.
Если /etc/fstab содержит информацию о данной файловой системе, команда mount использует значение другого параметра и параметры монтирования, указанные в fstab .
Файл /etc/fstab содержит список записей в следующем виде:
Используйте команду mount в одной из следующих форм, чтобы присоединить файловую систему, указанную в /etc/fstab :
Установка USB-накопителя
В большинстве современных дистрибутивов Linux, таких как Ubuntu, USB-накопители автоматически монтируются, когда вы их вставляете, но иногда вам может потребоваться вручную смонтировать диск.
Чтобы вручную подключить USB-устройство, выполните следующие действия:
Создайте точку монтирования:
Предполагая, что USB-накопитель использует устройство /dev/sdd1 вы можете /dev/sdd1 его к каталогу /media/usb , набрав:
Чтобы узнать тип устройства и файловой системы, вы можете использовать любую из следующих команд:
Чтобы смонтировать USB-накопители в формате exFAT, установите бесплатный модуль и инструменты FUSE exFAT .
Монтирование файлов ISO
Вы можете смонтировать файл ISO с помощью устройства loop, которое представляет собой специальное псевдоустройство, которое делает файл доступным как блочное устройство.
Начните с создания точки монтирования, это может быть любое место, которое вы хотите:
Подключите ISO-файл к точке монтирования, введя следующую команду:
Не забудьте заменить /path/to/image.iso путем к вашему файлу ISO.
Монтирование NFS
Чтобы смонтировать общий ресурс NFS, в вашей системе должен быть установлен клиентский пакет NFS.
Установите клиент NFS в Ubuntu и Debian:
Установите клиент NFS на CentOS и Fedora:
Выполните следующие действия, чтобы смонтировать удаленный каталог NFS в вашей системе:
Создайте каталог, который будет точкой монтирования для удаленной файловой системы:
Как правило, вам нужно автоматически монтировать удаленный общий ресурс NFS при загрузке. Для этого откройте файл /etc/fstab текстовом редакторе :
Добавьте в файл следующую строку, заменив remote.server:/dir IP-адресом сервера NFS или именем хоста и экспортированным каталогом:
Подключите общий ресурс NFS, выполнив следующую команду:
Отключение файловой системы
Чтобы отсоединить смонтированную файловую систему, используйте команду umount после которой укажите либо каталог, в котором она была смонтирована (точка монтирования), либо имя устройства:
Если файловая система используется, команда umount не сможет отсоединить файловую систему. В таких ситуациях вы можете использовать команду fuser чтобы узнать, какие процессы обращаются к файловой системе:
Как только вы определите процессы, вы можете остановить их и размонтировать файловую систему.
Ленивое отключение
Используйте параметр -l ( —lazy ), чтобы отключить занятую файловую систему, как только она больше не будет занята.
Размонтировать принудительно
Используйте параметр -f ( —force ), чтобы принудительно размонтировать. Этот параметр обычно используется для отключения недоступной системы NFS.
Обычно не рекомендуется принудительное отключение, так как это может повредить данные в файловой системе.
Выводы
К настоящему времени вы должны хорошо понимать, как использовать команду mount для присоединения различных файловых систем к вашему дереву каталогов и отсоединения монтирования с помощью команды umount .
Чтобы узнать больше о параметрах команд mount и umount , см. Соответствующие страницы руководства.
Источник
Монтирование удаленных файловых систем при помощи SSHFS
Как правило, обмен файлами с сервером – достаточно громоздкий процесс. Представьте себе разработку сценария использования, в код которого приложения вносятся с удаленной машины; при этом сценарий нужно неоднократно подгружать на виртуальный сервер. Это может доставить немало хлопот.
К счастью, файловую систему VPS можно смонтировать на локальном компьютере; это позволяет быстро вносить изменения и использовать сервер как локальное хранилище. Данная статья продемонстрирует процесс монтирования удаленной файловой системы через SSH.
Установка SSHFS
В Ubuntu/Debian
SSHFS (или Secure SHell FileSystem) – это программное обеспечение на основе Linux, которое позволяет монтировать удаленные файловые системы на локальную машину по протоколу SSH.
В системах Ubuntu и Debian (а также подобных) эту программу можно установить при помощи apt-get:
sudo apt-get install sshfs
В Mac OSX
Система Mac OSX тоже позволяет использовать SSHFS . Для этого нужно загрузить FUSE и SSHFS с сайта osxfuse.
В Windows
Чтобы установить SSHFS в Windows, нужно загрузить последнюю версию пакета win-sshfs из Google Code Repository (прямую ссылку на файл можно найти ниже). Загрузив пакет, дважды щелкните для запуска программы установки. Возможно, будет предложено загрузить дополнительные файлы, в таком случае установщик скачает и установит .NET Framework 4.0.
Монтирование удаленной файловой системы
Нижеприведенные инструкции подходят для систем Ubuntu, Debian и OSX. Пользователи Windows могут найти инструкции в конце данного руководства.
Итак, для начала нужно создать локальный каталог, в который будет смонтирована удаленная файловая система.
sudo mkdir /mnt/droplet
Теперь можно использовать sshfs для монтирования удаленной файловой системы на локальную при помощи следующей команды. На этом этапе будет предложено ввести корневой пароль виртуального сервера.
sudo sshfs root@xxx.xxx.xxx.xxx:/ /mnt/droplet
Если на сервере настроена авторизация при помощи ключей ssh, запустите следующую команду, чтобы sshfs мог использовать открытые ключи. При этом будет запрошена парольная фраза, установленная при создании пары ключей.
sudo sshfs -o IdentityFile=
/.ssh/id_rsa root@xxx.xxx.xxx.xxx:/ /mnt/droplet
Теперь можно работать с файлами сервера, как будто они находятся на физическом устройстве, подключенном к локальной машине. Например, если перейти в каталог /mnt/droplet на локальной машине и создать в нем файл, этот файл появится на виртуальном сервере. Точно так же можно скопировать файлы в каталог /mnt/droplet, и они будут загружены на сервер в фоновом режиме.
Важно отметить, что монтирование файловой системы сервера на локальную машину лишь временно. Если виртуальный сервер или локальная компьютер выключен или перезапущен, нужно будет повторить описанный выше процесс, чтобы снова смонтировать систему.
Демонтирование удаленной файловой системы
Если точка монтирования (mount point) больше не нужна, можно демонтировать файловую систему при помощи команды:
sudo umount /mnt/droplet
Постоянное монтирование удаленной файловой системы
SSHFS позволяет сделать точки монтирования удаленных файловых систем перманентными (то есть, создавать точки монтирования, которые будут сохраняться даже после перезагрузки локальной машины и виртуального сервера). Для того, чтобы создать постоянную точку монтирования, нужно отредактировать файл /etc/fstab на локальной машине; благодаря этому файловая система будет монтироваться после перезагрузки автоматически.
Итак, отредактируйте файл /etc/fstab:
sudo nano /etc/fstab
В нижней части файла внесите следующую запись:
Сохраните изменения и при необходимости перезапустите систему.
Нужно отметить, что постоянное монтирование файловой системы виртуального сервера на локальную машину – это потенциальный риск безопасности. В случае взлома локальной машины атакующий получает прямой доступ к виртуальному выделенному серверу. Потому устанавливать постоянные точки монтирования не рекомендуется.
Монтирование удаленной файловой системы Windows при помощи Win-SSHFS
После запуска программы win-sshfs появится графический интерфейс, который упростит процесс монтажа удаленной файловой системы.
- Нажмите кнопку Add в левом нижнем углу окна.
- Введите имя файловой системы в поле Drive Name.
- Введите IP сервера в поле Host.
- Укажите порт SSH (если порт не был изменен, оставьте значение 22).
- Укажите имя пользователя в поле Username (укажите root, если в системе нет дополнительных аккаунтов).
- Введите пароль SSH (имейте в виду: в Windows желательно использовать авторизацию при помощи пароля, а не с помощью ключей SSH).
- Укажите точку монтирования в поле Directory (введите /, чтобы смонтировать систему в root-каталог; аналогично, можно ввести /var/www или
/, чтобы указать домашний каталог).
Теперь файловая система виртуального сервера будет доступна через Мой компьютер, обозначенная так, как было указано в пункте 8.
Использование удаленной точки монтирования
Удаленное монтирование работает аналогично локальному хранилищу: пользователь может создавать, копировать, перемещать, редактировать, сжимать файлы, а также выполнять всевозможные операции файловой системы, требующие использования программ или скриптов, которые невозможно запустить на удаленном сервере.
Как правило, точку монтирования используют в случае, если на VPS размещен веб-сайт, который требует постоянного внесения изменений. Монтирование удаленной файловой системы на локальную позволяет запускать любой редактор кода, интерфейс IDE или текстовый редактор; все внесенные на локальном компьютере изменения будут сразу же отражены на виртуальном сервере.
Также монтирование значительно упрощает работу с серверами, используемыми для тестирования кода, поскольку оно позволяет быстро вносить изменения в код и сразу же тестировать их без необходимости изменять код сначала локально, а затем удаленно (что также избавляет от необходимости подгружать множество копий файлов для проверки небольших изменений в коде).
Источник