Bootstrap

sshfs или как примонтировать удалённую файловую систему на свой хост?

sshfs или как примонтировать удалённую файловую систему на свой хост?

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

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

Поэтому, давай рассмотрим процесс подключения SSHFS в Linux

Убедитесь, что sftp подсистема установлена на сервере. Т.е. на машине каталоги которой мы планируем примонтировать к нашему хосту, вы можете установить её, выполнив следующую команду (для Ubuntu/Debian):

sudo apt-get install openssh-server

В общем и целом, понятно, что у нас уже должен быть настроен доступ к серверу по SSH. (Подробнее про настройку подключения по SSH).

Проверьте конфигурацию SSH-сервера на наличие настроек подсистемы SFTP. Откройте файл конфигурации SSH-сервера (обычно располагается по адресу /etc/ssh/sshd_config) и убедитесь, что присутствует или не закомментирована следующая строка:

Subsystem sftp /usr/lib/openssh/sftp-server

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

sudo /etc/init.d/ssh restart

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


sudo apt install sshfs

А теперь, как использовать:

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

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

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

sshfs root@192.168.0.108:/ /mnt

если же сервер ssh работает на другом порту, то просто, как и обычно добавляем опцию -p с номером порта:

sshfs -p 3333 root@192.168.0.108:/ /mnt

Теперь проверьте содержимое /mnt чтобы убедиться в том, что вы получили желаемое. Закончив работу не забудьте отмонтироваться, на всякий случай.


      sudo umount /mnt

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


      sudo vim /etc/fuse.conf

Terminal:

user@mx:~
$ cat /etc/fuse.conf
# The file /etc/fuse.conf allows for the following parameters:
#
# user_allow_other - Using the allow_other mount option works fine as root, in
# order to have it work as user you need user_allow_other in /etc/fuse.conf as
# well. (This option allows users to use the allow_other option.) You need
# allow_other if you want users other than the owner to access a mounted fuse.
# This option must appear on a line by itself. There is no value, just the
# presence of the option.

#user_allow_other


# mount_max = n - this option sets the maximum number of mounts.
# Currently (2014) it must be typed exactly as shown
# (with a single space before and after the equals sign).

#mount_max = 1000

Теперь можно монтировать, с опцией для общего доступа к каталогу, на удалённом сервере:

sshfs -o allow_other root@192.168.0.108:/ /mnt

И после данной процедуры можно настроить монтирование разделов с удалённых хостов при загрузке системы.

Настройка SSHFS монтирования удалённой файловой системы при загрузке компьютера

итак у нас уже настроено подключение к нужному вам серверу, по ключам, ssh без ввода пароля

А также возможность использовать опцию общего доступа к удалённому каталогу, параграф выше.

Сначала убедимся, что всё работает выполняем:

sshfs -o allow_other root@192.168.0.108:/ /mnt

Если мы получили точку монтирования при этом не вводили пароль, то можно править конфигурацию /etc/fstab

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

sshfs -o allow_other identityfile=~/my_new root@192.168.0.108:/ /mnt

Убедившись, что всё работает, как надо. Приступаем к задуманному.

Terminal:

root@itdid:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# systemd generates mount units based on this file, see systemd.mount(5).
# Please run 'systemctl daemon-reload' after making changes here.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=ff0c92b9-52be-4d3e-b55d-f658b373c971 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=88f50016-52a6-46df-b2e5-ed9d774eebd3 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

В конец этого файла добавляем строчку, в моём случае вот эту:

root@192.168.0.108:/ /mnt fuse.sshfs noauto,x-systemd.automount,_netdev,follow_symlinks,identityfile=/home/user/my_key,allow_other,default_permissions,reconnect 0 0

содержимое /etc/fstab

Terminal:

UUID=ff0c92b9-52be-4d3e-b55d-f658b373c971 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=88f50016-52a6-46df-b2e5-ed9d774eebd3 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
root@192.168.0.108:/ /mnt fuse.sshfs noauto,x-systemd.automount,_netdev,follow_symlinks,identityfile=/home/user/my_key,allow_other,default_permissions,reconnect 0 0

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

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

Поэтому, давай рассмотрим процесс подключения SSHFS в Linux

Убедитесь, что sftp подсистема установлена на сервере. Т.е. на машине каталоги которой мы планируем примонтировать к нашему хосту, вы можете установить её, выполнив следующую команду (для Ubuntu/Debian):

sudo apt-get install openssh-server

В общем и целом, понятно, что у нас уже должен быть настроен доступ к серверу по SSH. (Подробнее про настройку подключения по SSH).

Проверьте конфигурацию SSH-сервера на наличие настроек подсистемы SFTP. Откройте файл конфигурации SSH-сервера (обычно располагается по адресу /etc/ssh/sshd_config) и убедитесь, что присутствует или не закомментирована следующая строка:

Subsystem sftp /usr/lib/openssh/sftp-server

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

sudo /etc/init.d/ssh restart

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


sudo apt install sshfs

А теперь, как использовать:

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

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

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

sshfs root@192.168.0.108:/ /mnt

если же сервер ssh работает на другом порту, то просто, как и обычно добавляем опцию -p с номером порта:

sshfs -p 3333 root@192.168.0.108:/ /mnt

Теперь проверьте содержимое /mnt чтобы убедиться в том, что вы получили желаемое. Закончив работу не забудьте отмонтироваться, на всякий случай.


      sudo umount /mnt

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


      sudo vim /etc/fuse.conf

Terminal:

user@mx:~
$ cat /etc/fuse.conf
# The file /etc/fuse.conf allows for the following parameters:
#
# user_allow_other - Using the allow_other mount option works fine as root, in
# order to have it work as user you need user_allow_other in /etc/fuse.conf as
# well. (This option allows users to use the allow_other option.) You need
# allow_other if you want users other than the owner to access a mounted fuse.
# This option must appear on a line by itself. There is no value, just the
# presence of the option.

#user_allow_other


# mount_max = n - this option sets the maximum number of mounts.
# Currently (2014) it must be typed exactly as shown
# (with a single space before and after the equals sign).

#mount_max = 1000

Теперь можно монтировать, с опцией для общего доступа к каталогу, на удалённом сервере:

sshfs -o allow_other root@192.168.0.108:/ /mnt

И после данной процедуры можно настроить монтирование разделов с удалённых хостов при загрузке системы.

Настройка SSHFS монтирования удалённой файловой системы при загрузке компьютера

итак у нас уже настроено подключение к нужному вам серверу, по ключам, ssh без ввода пароля

А также возможность использовать опцию общего доступа к удалённому каталогу, параграф выше.

Сначала убедимся, что всё работает выполняем:

sshfs -o allow_other root@192.168.0.108:/ /mnt

Если мы получили точку монтирования при этом не вводили пароль, то можно править конфигурацию /etc/fstab

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

sshfs -o allow_other identityfile=~/my_new root@192.168.0.108:/ /mnt

Убедившись, что всё работает, как надо. Приступаем к задуманному.

Terminal:

root@itdid:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# systemd generates mount units based on this file, see systemd.mount(5).
# Please run 'systemctl daemon-reload' after making changes here.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=ff0c92b9-52be-4d3e-b55d-f658b373c971 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=88f50016-52a6-46df-b2e5-ed9d774eebd3 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0

В конец этого файла добавляем строчку, в моём случае вот эту:

root@192.168.0.108:/ /mnt fuse.sshfs noauto,x-systemd.automount,_netdev,follow_symlinks,identityfile=/home/user/my_key,allow_other,default_permissions,reconnect 0 0

содержимое /etc/fstab

Terminal:

UUID=ff0c92b9-52be-4d3e-b55d-f658b373c971 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=88f50016-52a6-46df-b2e5-ed9d774eebd3 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
root@192.168.0.108:/ /mnt fuse.sshfs noauto,x-systemd.automount,_netdev,follow_symlinks,identityfile=/home/user/my_key,allow_other,default_permissions,reconnect 0 0

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

Копирование материалов разрешается только с указанием автора Roman Sakhno и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: