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 будет выглядеть следующим образом:
А теперь, как использовать:
Монтирование 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 чтобы убедиться в том, что вы получили желаемое. Закончив работу не забудьте отмонтироваться, на всякий случай.
Но на данный момент только, вы в вашей многопользовательской системе сможете использовать этот каталог таким образом. Но если вы желаете настроить для всех пользователей вашего хоста sshfs доступ к этому каталогу, то нужно использовать опцию allow_other.Для этого в файле /etc/fuse.conf должна присутствовать опция user_allow_other. При необходимости раскомментировать её, сделайте это:
☯
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 будет выглядеть следующим образом:
А теперь, как использовать:
Монтирование 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 чтобы убедиться в том, что вы получили желаемое. Закончив работу не забудьте отмонтироваться, на всякий случай.
Но на данный момент только, вы в вашей многопользовательской системе сможете использовать этот каталог таким образом. Но если вы желаете настроить для всех пользователей вашего хоста sshfs доступ к этому каталогу, то нужно использовать опцию allow_other.Для этого в файле /etc/fuse.conf должна присутствовать опция user_allow_other. При необходимости раскомментировать её, сделайте это:
☯
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
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.