- Подключение и настройка SSHFS в Linux
- Подключение SSHFS в Linux
- Автоматическое монтирование SSHFS
- Выводы
- Как использовать SSHFS для монтирования удаленных каталогов через SSH
- Установка SSHFS
- Установка SSHFS в Ubuntu и Debian
- Установка SSHFS на CentOS
- Установка SSHFS на macOS
- Установка SSHFS в Windows
- Монтирование удаленной файловой системы
- Монтирование удаленной файловой системы в Windows
- Отключение удаленной файловой системы
- Выводы
Подключение и настройка SSHFS в Linux
Файловая система SSHFS (Secure Shell FileSystem) позволяет монтировать файловую систему удалённого сервера с помощью протокола SSH. Это может быть очень удобно, если вам надо передать на удалённый сервер много данных или скачать эти данные оттуда. Конечно, существует утилита scp, но иногда просматривать файловую систему в файловом менеджере намного удобнее.
В этой небольшой статье мы рассмотрим как выполняется подключение SSHFS в Linux, а также как настроить автоматическое монтирование этой файловой системы при загрузке.
Подключение SSHFS в Linux
Для работы файловой системы достаточно SSH доступа к удалённому серверу. На клиентской машине надо установить пакет sshfs. Если он не установлен, команда установки в Ubuntu будет выглядеть следующим образом:
Монтирование SSHFS выполняется с помощью одноимённой команды. Её синтаксис такой:
$ sshfs опции имя_пользователя @ адрес : /путь /точка/монтирования
Например, чтобы примонтировать удалённую файловую систему по адресу 192.168.56.103 от имени пользователя root достаточно выполнить:
sudo sshfs root@192.168.56.103:/ /mnt
Теперь вы сможете просмотреть содержимое файловой системы. Но здесь есть одно несколько минусов, во первых — не всегда удобно монтировать файловую систему от имени суперпользователя, а во вторых примонтированная файловая система будет доступна для чтения и записи только суперпользовтелю.
Чтобы получить возможность монтировать от имени обычного пользователя необходимо создать группу fuse:
Затем добавить текущего пользователя в эту группу:
sudo usermod -aG fuse $USER
После этого перелогиньтесь в системе, чтобы изменения применились. От имени обычного пользователя вы не сможете примонтировать sshfs в /mnt потому что у вас нет права записи в эту папку, создайте папку для монтирования в домашней папке:
Далее можно пытаться монтировать:
sshfs root@192.168.56.103:/ ~/mnt
Теперь вы можете использовать эту папку для того чтобы обмениваться файлами с сервером. Если надо чтобы и другие пользователи могли получать доступ к этой папке, надо использовать опцию allow_other. Она будет работать только если в файле /etc/fuse.conf присутствует опция user_allow_other. Добавьте её:
sshfs -o allow_other root@192.168.56.103:/ ~/mnt
Для того чтобы отмонтировать файловую систему используйте привычную команду umount:
Автоматическое монтирование SSHFS
Вы можете настроить автоматическое монтирование SSHFS в файле /etc/fstab. Для этого сначала вам придется создать SSH ключ и отправить его на удалённый сервер. Создайте новый ключ:
Затем передайте его на сервер:
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:
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 текущего пользователя:
В данном случае, это 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. Как видите, это не очень сложно, но в то же время удобно для передачи большого количества файлов.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как использовать 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, набрав:
sudo apt update
sudo apt install sshfs
Установка SSHFS на CentOS
В CentOS и других производных от Red Hat выполните следующую команду для установки sshfs:
Установка SSHFS на macOS
Пользователи macOS могут установить клиент SSHFS, загрузив пакеты FUSE и SSHFS с сайта osxfuse или через Homebrew:
brew cask install osxfuse
brew install sshfs
Установка SSHFS в Windows
Пользователям Windows необходимо установить два пакета: WinFsp и SSHFS-Win.
Монтирование удаленной файловой системы
Следующие инструкции применимы для всех дистрибутивов Linux и macOS.
Чтобы смонтировать удаленный каталог, пользователь SSH должен иметь к нему доступ. Команда монтирования SSHFS принимает следующий вид:
sshfs [user@]host:[remote_directory] mountpoint [options]
Команда sshfs прочитает файл конфигурации SSH и использует настройки для каждого хоста. Если удаленный каталог не указан, по умолчанию используется домашний каталог удаленного пользователя.
Например, чтобы смонтировать домашний каталог пользователя с именем «linuxize» на удаленном хосте с IP-адресом «192.168.121.121», сначала создайте каталог, который будет служить точкой монтирования, это может быть любое место, которое вы хотите:
Затем используйте команду sshfs для монтирования удаленного каталога:
sshfs linux[email protected]:/home/linuxize /home/linuxize/linuxizeremote
Вам будет предложено ввести пароль пользователя. Чтобы не вводить пароль каждый раз при монтировании удаленного каталога, сгенерируйте ключи SSH и настройте вход SSH без пароля .
Теперь вы можете взаимодействовать с каталогами и файлами, расположенными на удаленном сервере, точно так же, как и с локальными файлами. Например, вы можете редактировать, удалять, переименовывать или создавать новые файлы и каталоги.
Если вы хотите навсегда смонтировать удаленный каталог, вам необходимо отредактировать файл /etc/fstab на локальном компьютере и добавить новую запись монтирования. Таким образом, когда ваша система загружается, она автоматически монтирует удаленный каталог.
Чтобы смонтировать удаленный каталог через SSHFS из /etc/fstab , используйте fuse.sshfs в качестве типа файловой системы.
user@host:/remote/dir /local/mountpoint fuse.sshfs defaults 0 0
При создании постоянного монтирования убедитесь, что вы можете подключить удаленный хост с помощью аутентификации на основе ключа SSH.
Монтирование удаленной файловой системы в Windows
Пользователи Windows могут использовать проводник Windows, чтобы подключить сетевой диск к удаленному каталогу на SSH-сервере.
Откройте проводник Windows, щелкните правой кнопкой мыши «Этот компьютер» и выберите «Подключить сетевой диск». Выберите диск для монтирования и в поле «Папка» введите удаленного пользователя, сервер и путь в следующем формате:
На момент написания этой статьи SSHFS-Win не поддерживает аутентификацию на основе ключей, поэтому удаленный сервер SSH должен быть настроен для принятия аутентификации на основе пароля.
Для получения более подробной информации обратитесь к руководству по SSHFS-Win .
Отключение удаленной файловой системы
Чтобы отсоединить смонтированную файловую систему, используйте команду umount или fusermount после которой fusermount каталог, в котором она была смонтирована (точка монтирования):
fusermount -u /local/mountpoint
Выводы
В этом руководстве вы узнали, как использовать SSHFS для монтирования удаленного каталога через SSH. Это может быть полезно, если вы хотите взаимодействовать с удаленными файлами с помощью приложений на локальном компьютере.
Чтобы получить полный список опций sshfs, введите в терминале man sshfs .
Вы также можете ограничить доступ пользователей к их домашнему каталогу, настроив среду SFTP Chroot Jail и изменив порт SSH по умолчанию, чтобы добавить дополнительный уровень безопасности на ваш сервер.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.