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

Содержание
  1. Монтирование удаленной директории с помощью sshfs. Часть вторая
  2. Опция allow_other
  3. Аутентификация по ключу
  4. Монтирование при загрузке
  5. 1. Редактируем файл /etc/fstab
  6. 2. Создаем новый unit-файл
  7. 2.1. Создаем service-файл
  8. 2.2. Создаем mount-файл
  9. Как использовать SSHFS для монтирования удаленных каталогов через SSH
  10. Установка SSHFS
  11. Установка SSHFS в Ubuntu и Debian
  12. Установка SSHFS на CentOS
  13. Установка SSHFS на macOS
  14. Установка SSHFS в Windows
  15. Монтирование удаленной файловой системы
  16. Монтирование удаленной файловой системы в Windows
  17. Отключение удаленной файловой системы
  18. Выводы
  19. Монтирование удаленных файловых систем при помощи SSHFS
  20. Установка SSHFS
  21. В Ubuntu/Debian
  22. В Mac OSX
  23. В Windows
  24. Монтирование удаленной файловой системы
  25. Демонтирование удаленной файловой системы
  26. Постоянное монтирование удаленной файловой системы
  27. Монтирование удаленной файловой системы Windows при помощи Win-SSHFS
  28. Использование удаленной точки монтирования

Монтирование удаленной директории с помощью 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 .

Читайте также:  Обновление windows store для windows 10

Разумеется, утилиту 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 по умолчанию, чтобы добавить дополнительный уровень безопасности на ваш сервер.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Монтирование удаленных файловых систем при помощи 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 мог использовать открытые ключи. При этом будет запрошена парольная фраза, установленная при создании пары ключей.

Читайте также:  Сброс пробного периода windows

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 появится графический интерфейс, который упростит процесс монтажа удаленной файловой системы.

  1. Нажмите кнопку Add в левом нижнем углу окна.
  2. Введите имя файловой системы в поле Drive Name.
  3. Введите IP сервера в поле Host.
  4. Укажите порт SSH (если порт не был изменен, оставьте значение 22).
  5. Укажите имя пользователя в поле Username (укажите root, если в системе нет дополнительных аккаунтов).
  6. Введите пароль SSH (имейте в виду: в Windows желательно использовать авторизацию при помощи пароля, а не с помощью ключей SSH).
  7. Укажите точку монтирования в поле Directory (введите /, чтобы смонтировать систему в root-каталог; аналогично, можно ввести /var/www или

/, чтобы указать домашний каталог).

  • Выберите обозначение дискового накопителя, которое Windows будет использовать для файловой системы сервера.
  • Нажмите кнопку Mount, чтобы подключиться к серверу и смонтировать файловую систему.
  • Теперь файловая система виртуального сервера будет доступна через Мой компьютер, обозначенная так, как было указано в пункте 8.

    Использование удаленной точки монтирования

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

    Как правило, точку монтирования используют в случае, если на VPS размещен веб-сайт, который требует постоянного внесения изменений. Монтирование удаленной файловой системы на локальную позволяет запускать любой редактор кода, интерфейс IDE или текстовый редактор; все внесенные на локальном компьютере изменения будут сразу же отражены на виртуальном сервере.

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

    Источник

    Оцените статью