Главная >> Инструкции >> Подключение и настройка SSHFS в Linux

Подключение и настройка SSHFS в Linux

Файловая система SSHFS (Secure Shell FileSystem) позволяет монтировать файловую систему удалённого сервера с помощью протокола SSH. Это может быть очень удобно, если вам надо передать на удалённый сервер много данных или скачать эти данные оттуда. Конечно, существует утилита scp, но иногда просматривать файловую систему в файловом менеджере намного удобнее.

В этой небольшой статье мы рассмотрим как выполняется подключение SSHFS в Linux, а также как настроить автоматическое монтирование этой файловой системы при загрузке.


Содержание статьи

Подключение SSHFS в Linux

Для работы файловой системы достаточно SSH доступа к удалённому серверу. На клиентской машине надо установить пакет sshfs. Если он не установлен, команда установки в Ubuntu будет выглядеть следующим образом:

sudo apt install sshfs

Монтирование SSHFS выполняется с помощью одноимённой команды. Её синтаксис такой:

$ sshfs опции имя_пользователя@адрес:/путь /точка/монтирования

Например, чтобы примонтировать удалённую файловую систему по адресу 192.168.56.103 от имени пользователя root достаточно выполнить:

sudo sshfs root@192.168.56.103:/ /mnt

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

Чтобы получить возможность монтировать от имени обычного пользователя необходимо создать группу fuse:

sudo groupadd fuse

Затем добавить текущего пользователя в эту группу:

sudo usermod -aG fuse $USER

После этого перелогиньтесь в системе, чтобы изменения применились. От имени обычного пользователя вы не сможете примонтировать sshfs в /mnt потому что у вас нет права записи в эту папку, создайте папку для монтирования в домашней папке:

mkdir ~/mnt/

Далее можно пытаться монтировать:

sshfs root@192.168.56.103:/ ~/mnt

Теперь вы можете использовать эту папку для того чтобы обмениваться файлами с сервером. Если надо чтобы и другие пользователи могли получать доступ к этой папке, надо использовать опцию allow_other. Она будет работать только если в файле /etc/fuse.conf присутствует опция user_allow_other. Добавьте её:

sudo vi /etc/fuse.conf

Теперь можно монтировать:

sshfs -o allow_other root@192.168.56.103:/ ~/mnt

Для того чтобы отмонтировать файловую систему используйте привычную команду umount:

sudo umount ~/mnt/

Автоматическое монтирование SSHFS

Вы можете настроить автоматическое монтирование SSHFS в файле /etc/fstab. Для этого сначала вам придется создать SSH ключ и отправить его на удалённый сервер. Создайте новый ключ:

ssh-keygen

Затем передайте его на сервер:

ssh-copy-id -i ~/.ssh/id_dsa.pub root@192.168.56.103

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

sshfs -o identityfile=~/.ssh/id_dsa.pub root@192.168.56.103:/ ~/mnt

Если всё работает, можно составить сточку конфигурации для /etc/fstab:

sudo vi /etc/fstab

root@192.168.56.103:/ /mnt fuse.sshfs noauto,x-systemd.automount,_netdev,follow_symlinks,identityfile=/home/sergiy/.ssh/id_dsa,allow_other,default_permissions,reconnect 0 0

Путь к файлу ключа должен быть полным, поэтому замените имя пользователя на своё. Для того, чтобы не получать ошибок доступа при записи желательно чтобы имя пользователя на локальной машине и на удалённой совпадали. Или же, можно указать ID пользователя и группы владельца во время монтирования. Сначала посмотрите UID и GID текущего пользователя:

cat /etc/passwd | grep $USER

В данном случае, это 1000. Первая цифра - это UID, вторая - GID. Затем передайте их в опциях монтирования uid и gid:

root@192.168.56.103:/ /mnt fuse.sshfs uid=1000,gid=1000,noauto,x-systemd.automount,_netdev,follow_symlinks,identityfile=/home/sergiy/.ssh/id_dsa,allow_other,default_permissions,reconnect 0 0

Теперь всё должно работать.

Выводы

Теперь вы знаете как выполняется подключение и настройка SSHFS Linux. Как видите, это не очень сложно, но в то же время удобно для передачи большого количества файлов.

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

13 комментариев к “Подключение и настройка SSHFS в Linux”

  1. И ничего. NFS является следующим шагом в развитии SSHFS. Поэтому непонятно, зачем описывать прелести старой версии, если есть уже другое решение, более новое. Саму статью никто не критикует. Всё написано хорошо.
    Только и всего.

    Ответить
  2. Ничего не говорится о выходе из vi
    Ньюфаги будут пылать злобой и этот плевок автора в читателей сделает эту статью непонятной

    Ответить
  3. Ну зачем вообще сверкать белым пальто и плеваться в автора, когда сам не сказал, как оттуда выйти. Выход из vi - это двоеточие и символ q, вот так :q

    Ответить
  4. Добрый день!
    Имеется вопрос, а какой вид примет команда, если мне надо указать сторонний порт?

    root@192.168.56.103:/ /mnt fuse.sshfs uid=1000,gid=1000,noauto,x-systemd.automount,_netdev,follow_symlinks,identityfile=/home/sergiy/.ssh/id_dsa,allow_other,default_permissions,reconnect 0 0

    В моем случае ssh (sshfs) работает не на 22 порту, а 20022

    Ответить
  5. Очередная бесполезная статья. "Тык тык тык вот смотрите как всё просто". А по факту только на этапе монтирования куча ошибок вылезает.

    Ответить
    • Просто сначала надо руки вынуть кое-откуда, а только потом действовать. У меня всё сработало за 10 секунд, причём сервер, конечно, удалённый

      Ответить
    • Очередной криворук, списывающий свою криворукость на кривые мануалы. Эффект Данинга-Крюгера во всей красе? Ну работает же! Меньше минуты на реализацию, если по паролю. Чуть больше, если по ключу...

      Ответить

Оставьте комментарий