Windows подключение сетевого диска по ssh


Из этого руководства вы узнаете, как установить клиент SSHFS в Linux, macOS и Windows и как смонтировать удаленный каталог.
- BAKS.dev

SSHFS (SSH Filesystem) — это клиент файловой системы на основе FUSE для монтирования удаленных каталогов по SSH-соединению. SSHFS использует протокол SFTP, который является подсистемой SSH и включен по умолчанию на большинстве серверов SSH.

По сравнению с другими протоколами сетевой файловой системы, такими как NFS и Samba, преимущество SSHFS заключается в том, что он не требует какой-либо дополнительной настройки на стороне сервера. Для использования SSHFS вам нужен только SSH-доступ к удаленному серверу.

Поскольку SSHFS использует SFTP , все передаваемые данные между сервером и клиентом должны быть зашифрованы и расшифрованы. Это приводит к слегка ухудшенной производительности по сравнению с NFS и более высокой загрузке ЦП на клиенте и сервере.

Установка SSHFS

Пакеты SSHFS доступны для всех основных операционных систем, и установка довольно проста.

Установка SSHFS в Ubuntu и Debian 

SSHFS доступен из репозиториев Ubuntu и Debian по умолчанию. Обновите индекс пакетов и установите клиент sshfs, набрав:

sudo apt update sudo apt install sshfs 

Установка SSHFS на CentOS

В CentOS и других производных Red Hat для установки sshfs выполните следующую команду:

sudo yum install sshfs 

Установка SSHFS на macOS

Пользователи macOS могут установить клиент SSHFS, загрузив пакеты FUSE и SSHFS с сайта osxfuse или через Homebrew:

brew cask install osxfuse brew install sshfs 

Установка SSHFS в Windows 

Пользователям Windows необходимо установить два пакета, WinFsp и SSHFS-Win.

  • WinFsp .
  • SSHFS-Win .

Монтирование удаленной файловой системы 

Следующие инструкции применимы для всех дистрибутивов Linux и macOS.

Чтобы смонтировать удаленный каталог, пользователь SSH должен иметь доступ к нему. Команда монтирования SSHFS имеет следующий вид:

sshfs [user@]host:[remote_directory] mountpoint [options] 


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

Например, чтобы смонтировать домашний каталог пользователя с именем «linuxize» на удаленном хосте с IP-адресом «192.168.121.121», сначала создайте каталог, который будет служить точкой монтирования, это может быть любое местоположение:

mkdir ~/linuxizeremote 


   Затем используйте команду sshfs для монтирования удаленного каталога:

sshfs linuxize@192.168.121.121:/home/linuxize /home/linuxize/linuxizeremote 

Вам будет предложено ввести пароль пользователя. Чтобы не вводить пароль каждый раз, когда вы монтируете удаленный каталог, генерируйте SSH-ключи и настраивайте Passwordless SSH Login .

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

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

Чтобы смонтировать удаленный каталог через SSHFS /etc/fstab , используйте fuse.sshfs в качестве типа файловой системы.

/etc/fstab

user@host:/remote/dir  /local/mountpoint  fuse.sshfs  defaults  0  0
 

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

Монтирование удаленной файловой системы в Windows

Пользователи Windows могут использовать проводник Windows для сопоставления сетевого диска с удаленным каталогом на сервере SSH.

Откройте проводник Windows, щелкните правой кнопкой мыши «Этот компьютер» и выберите «Подключить сетевой диск». Выберите диск для монтирования и в поле «Папка» введите удаленного пользователя, сервер и путь в следующем формате:

\sshfsuser@host[PATH]
 

На момент написания этой статьи SSHFS-Win не поддерживает аутентификацию на основе ключей, поэтому необходимо настроить удаленный ssh-сервер для принятия аутентификации на основе пароля.

Для более подробной информации обратитесь к руководству по SSHFS-Win .

Размонтирование удаленной файловой системы

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

fusermount -u /local/mountpoint 
umount /local/mountpoint 

Вывод 

Из этого руководства вы узнали, как использовать SSHFS для монтирования удаленного каталога через SSH. Это может быть полезно, когда вы хотите взаимодействовать с удаленными файлами с помощью приложений на локальном компьютере.

Для получения полного списка опций sshfs введите man sshfs свой терминал.

Вы также можете ограничить доступ пользователей к их домашнему каталогу, настроив среду SFTP Chroot Jail и изменив порт SSH по умолчанию, чтобы добавить дополнительный уровень безопасности вашему серверу.

Содержание

  • 1 А зачем?
  • 2 Дополнительные компоненты
    • 2.1 Под Windows
    • 2.2 Под Linux
  • 3 Подключение файловой системы

Брррр…Что!? Сейчас поясню. Есть такая штука – файловая система SSHFS, точнее как бы обёртка под файловую систему, благодаря которой можно подключиться к удалённой файловой системе по защищённому протоколу. Вообще, каких только обёрток не придумали, но не будем сейчас углубляться в историю, а покажем на практике, как это работает. Примечательно то, что на сервере нам не нужно делать ничего особенного, как был поднят SSH, так он и будет поднят.

А зачем?

  • Никогда не знаешь, что будет на рабочей станции, когда нужно удалённо поработать. Обычно я использую WinSCP для передачи данных, но это доп.софт, причём довольно специфичный. А здесь практически чистая поддержка, + фичи использования сетевых дисков.
  • Для Linux-систем – вообще супер, т.к. не требует настройки сервера (как например NFS), правда немного съедает производительность за счёт криптографии.

Дополнительные компоненты

Под Windows

  1. WinFSP, последняя версия с гитхаба;
    WinFSP установка под Windows
    WinFSP установка под Windows
  2. SSHFS-Win, последняя версия с гитхаба;
    SSHFS под Windows
    SSHFS под Windows

SSHFS-Win требует для своей работы WinFSP, так что ставим по порядку.

Под Linux

# yum install sshfs

Это под мой любимый CentOS. Под другими дистрибутивами – аналогично, скорее всего придётся заменить yum на apt-get :) Готово!

Подключение файловой системы

После того, как компоненты установлены, просто(!) подключаем сетевой диск по следующему пути:

\sshfs<имя пользователя>@<адрес хоста>

Сетевой диск по SSH

Сетевой диск по SSH

И останется только указать действующие аутентификационные данные этой учётной записи, как наш сетевой диск подключится:

Сетевой диск по SSH

Сетевой диск по SSH

Для Linux соответственно:

# sshfs <login>@<host>:<path> <mount-point>

Монтируем sshfs под Linux

Монтируем sshfs под Linux

Всё очень просто! Реально крутая фича, буду пользовать. Если вам показалась эта тема полезной – не поскупитесь на лайк/репост, ну прям душу греет каждый новый отзыв.

SSHFS на Windows 10 для монтирования папки из Linux Debian 10

Сегодня расскажу как смонтировать папку (например, с сайтами) из Debian в Windows 10 по SSH (SFTP) с удобным включением/выключением. Под нужным пользователем (www-data) с нужными правами.

Ниже длинное вступление о том как и зачем мне это нужно. Его можно промотать.

Те кто читал мои посты в блоге и видел видосики на канале знают что в основном я занимаюсь разработкой своих сайтов на WordPress, Yii, Laravel. Основной инструмент — PhpStorm. Боевые проекты хостятся на разных вдсках в основном это FastVPS и RuWEB. Везде Debian + Nginx и везде более менее стандартный конфиг (с поправкой на версии и нагрузку кажого из проектов). Всего порядка десяка вдсок.

Разработка и бэкапы на локальной машине под Windows 10, где крутится усредненный аналог боевой конфиги в VirtualBox. Т.е. дев сервер сейчас это Debian 10 + Nginx 1.15.

Разработка и деплой на rsync

Со всех вдсок sh скрипт с помощью

ssh + rsync + mysqldump  собирает текущие версии проектов и в итоге на дев инстансте всегда актуальные данные любого из проектов. На деве ведется разработка, тестирование, минификация, обфускация и т.д.После чего тем же скриптом изменения деплоятся на прод, на конкретную вдску. Git используется только на деве.

Я знаю про Docker :)

Эта схема не тренд, а мой личный велосипед. Логичнее было все это хозяйство контейнезировать и деплоить через гит. Однако некоторые проекты контейнезировать без потерь крайне сложно, а городить разные инфраструктуры при работе в одни руки не эффективно. Мой велосипед вполне успешно работает уже много лет, но есть одна проблема, над которой я бьюсь столько же лет сколько велосипед существует.

Проблема на самом деле в PhpStorm

SSHFS на Windows 10 для монтирования папки из Linux Debian 10

В PhpStorm когда вы создаете проект из ранее созданных файлов ( Create New Project from Existing Files ) у вас есть по сути два выбора — файлы проекта расположены локально или удаленно. Если создать проект из удаленных файлов, то PhpStorm будет скачивать их все на локальный диск для индексации. А при изменении закачивать их обратно на удаленный сервер (например по SFTP). Это не проблема, когда разработка идет на одном компьютере.

Разработка на разных компах, в разных сетях

Однако я работаю сразу на 3х — стационарный десктоп под Windows 10, два ноутбука. Один ноут используется дома (нравится мне менять места и позы во время работы), второй используется реже — вне дома. И в этом случае возникает сложность синхронизации локальных проектов одного и того же удаленного проекта. Особенно если это проекты с множеством мелких файлов. Например Laravel c Laravel Mix. Короче жуткая головная боль.

Монтирование папки из Debian все бы решило

Куда проще если бы можно было подмонтировать удаленную папку сайта и создавать проект в PhpStorm как с локальными файлами. В Ubuntu это делается элементарно, а вот под виндой все на порядок сложнее.

Вариант с Samba

В принципе дома у меня работала схема с Samba сервером на дев виртуалке под юзером www-data. Но если работать с дев сервером с улицы (через проброс портов через роутер) и если домашний ip динамический, то возникает несколько сложностей — нужно каждый раз менять ip, пробрасывать порт в роутере ещё и на самбу (лишняя уязвимость), перемонтировать диски. Короче хотелось так чтобы как в Ubuntu. И выход нашелся.

Монтирование папки из Linux (Debian) в Windows по SFTP

Для монтирования папки из Linux в Window 10 по SFTP я использую связку billziss-gh/winfsp  + billziss-gh/sshfs-win . WinFSP — это порт https://github.com/libfuse/sshfs под винду. А sshfs — это как раз та сетевая файловая система что используется в Ubuntu для монтирования по SFTP. Как я и хотел.

Итак ставим сначала WinFSP, затем SSHFS-Win. Сразу после перезагрузки диски папки можно будет легко монтировать прямо из проводника Windows 10. См. картинку.

Монтирование папки через проводник в SSHFS-Win

Монтирование папки через проводник в SSHFS-Win

Однако в моем случае это не решило проблему.

Нестандартные порты SSH при монтировании

При монтировании папки через проводник вы можете указать путь до папки на сервере, но не можете указать порт SSH, если ssh висит не на 22. Это можно сделать в командной строке

net use Z: sshfs[LOCUSER=]REMUSER@HOST[!PORT][PATH]

Но тогда:

  • проводник, а соотв. и PhpStorm не увидит примонтированный диск
  • логин/пароль придется вводить каждый раз.

Есть ощущение что это все можно решить если глубоко погрязнуть в скрипты настройки SSHFS-Win, однако здесь есть и два GUI это SiriKali и SSHFS-Win-Manager  .

SiriKali мне жутко не понравился, а вот SSHFS-Win-Manager прижился. Собственно его использование решает почти все проблемы для монтирования дисков из Linux в Windows 10 по SFTP. Я напишу о его настройке чуть ниже. Однако в моем случае просто монтирования было не достаточно.

SSHFS-Win проблемы с юзером и правами на новые папки и файлы

Я ведь все эту чехарду устроил ради разработки и мне нужно чтобы работа на подмонтированном диске была из под юзера

wwwdata  юзер www-data по умолчанию не имеет доступа к консоли и под ним нельзя примонтировать диск. Также SSHFS-Win создает НОВЫЕ папки и файлы с правами 0700 (для уже созданных не меняет), а мне надо чтобы было 0755 на папки и 0644 на файлы.

Разрешаю монтирование под www-data

Это самое сомнительное решение. Во всей этой схеме. Однако для виртуалки за роутером я решил что сойдет.

sudo passwd wwwdata # задаем пароль для www-data

И в файле

/etc/passwd правлю строку:

wwwdata:x:33:33:wwwdata:/home:/bin/bash

Обрати внимание что я сменил и папку юзера на ту, которую буду монтировать. Перезагружаю виртуалку и все — под www-data можно логиниться и монтировать диски.

Права на вновь создаваемые папки и файлы под SSHFS-Win

Для задания нужных прав у WinFSP есть опции

create_file_umask  и

create_dir_umask . Их можно использовать в командной строке, однако проще в SSHFS-Win-Manager . Смотри картинки ниже.

Настройки SSHFS-Win-Manager

SSHFS на Windows 10 для монтирования папки из Linux Debian 10

Здесь я создал два диска с одной буквой. Все эти маунты ведут на одну и туже виртуалку VirtualBox. Но один на внутренний IP, а второй через внешний динамический IP (через роутер с проброшенными портами на 80, 443 и ssh). Т.е. дома я монтирую верхний вариант и проброс в роутере могу вообще закрыть. А если работаю вне дома, то монтирую нижний. При этом для PhpStorm это всегда один и тотже локальный диск V. Невероятно удобно.

SSHFS на Windows 10 для монтирования папки из Linux Debian 10

SSHFS на Windows 10 для монтирования папки из Linux Debian 10

На этой картинки расширенные настройки, которые позволяют выставить нужные мне права (0755 / 0644). Если тебе нужны другие права гугли “permission umask ”.

На данный момент схема хорошо работает. На 4G Laravel проект под PhpStorm индексируется на 20-30 секунд, что более чем приемлемо.  Если есть что дополнить или вопросы — пиши комменты (могут отлетать в премодерацию — это норма, я одобрю и отвечу). Также я есть в Телеграм.

SSHFS-Win · SSHFS for Windows

Download

GUI Frontends

SSHFS-Win is a minimal port of SSHFS to Windows. Under the hood it uses Cygwin for the POSIX environment and WinFsp for the FUSE functionality.

Installation

  • Install the latest version of WinFsp.
  • Install the latest version of SSHFS-Win. Choose the x64 or x86 installer according to your computer’s architecture.

Both can also be easily installed with WinGet:

winget install WinFsp.WinFsp; winget install SSHFS-Win.SSHFS-Win

Basic Usage

Once you have installed WinFsp and SSHFS-Win you can map a network drive to a directory on an SSHFS host using Windows Explorer or the net use command.

Windows Explorer

In Windows Explorer select This PC > Map Network Drive and enter the desired drive letter and SSHFS path using the following UNC syntax:

\sshfsREMUSER@HOST[PATH]

The first time you map a particular SSHFS path you will be prompted for the SSHFS username and password. You may choose to save these credentials with the Windows Credential Manager in which case you will not be prompted again.

In order to unmap the drive, right-click on the drive icon in Windows Explorer and select Disconnect.

Command Line

You can map a network drive from the command line using the net use command:

> net use X: \sshfsbillziss@mac2018.local
The password is invalid for \sshfsbillziss@mac2018.local.

Enter the user name for 'sshfs': billziss
Enter the password for sshfs:
The command completed successfully.

You can list your net use drives:

$ net use
New connections will be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
             X:        \sshfsbillziss@mac2018.local
                                                WinFsp.Np
The command completed successfully.

Finally you can unmap the drive as follows:

$ net use X: /delete
X: was deleted successfully.

UNC Syntax

The complete UNC syntax is as follows:

\sshfs[LOCUSER=]REMUSER@HOST[!PORT][PATH]
\sshfs.r[LOCUSER=]REMUSER@HOST[!PORT][PATH]
\sshfs.k[LOCUSER=]REMUSER@HOST[!PORT][PATH]
\sshfs.kr[LOCUSER=]REMUSER@HOST[!PORT][PATH]
  • REMUSER is the remote user (i.e. the user on the SSHFS host whose credentials are being used for access).
  • HOST is the SSHFS host.
  • PORT is the remote port on the SSHFS host (optional; default is 22).
  • PATH is the remote path. This is interpreted as follows:
    • The sshfs prefix maps to HOST:~REMUSER/PATH on the SSHFS host (i.e. relative to REMUSER‘s home directory).
    • The sshfs.r prefix maps to HOST:/PATH on the SSHFS host (i.e. relative to the HOST‘s root directory).
    • The sshfs.k prefix maps to HOST:~REMUSER/PATH and uses the ssh key in %USERPROFILE%/.ssh/id_rsa (where %USERPROFILE% is the home directory of the local Windows user). To specify a different specific key, define an alias of the HOST with the specific private ssh key you want to use in the ssh config. BEWARE: only keys without a pass phrase are supported.
    • The sshfs.kr prefix maps to HOST:/PATH and uses the ssh key in %USERPROFILE%/.ssh/id_rsa. To specify a different specific key, define an alias of the HOST with the specific private ssh key you want to use in the ssh config. BEWARE: only keys without a pass phrase are supported.
  • LOCUSER is the local Windows user (optional; USERNAME or DOMAIN+USERNAME format).
    • Please note that this functionality is rarely necessary with latest versions of WinFsp.

GUI front ends

There are currently 2 GUI front ends for SSHFS-Win: SiriKali and SSHFS-Win-Manager.

SiriKali

SiriKali is a GUI front end for SSHFS-Win (and other file systems). Instructions on setting up SiriKali for SSHFS-Win can be found at this link. Please report problems with SiriKali in its issues page.

SiriKali supports:

  • Password authentication.
  • Public key authentication.
  • Key Agents and KeePass 2.

SSHFS-Win-Manager

SSHFS-Win-Manager is a new GUI front end specifically for SSHFS-Win with a user-friendly and intuitive interface. SSHFS-Win-Manager integrates well with Windows and can be closed to the system tray. Please report problems with SSHFS-Win-Manager in its issues page.

SSHFS-Win-Manager supports:

  • Password authentication.
  • Public key authentication.

Using Jump Hosts

sshfs-win itself does not currently support ssh tunneling, but something similar can be achieved using the built-in openSSH of windows.

  • use openSSH t create a local port forward through the jump host to the target

    ssh -L <origin port of jump connection>:<target of tunnel>:<port of target to target> <adress of tunnel jump host>
    

    All standard settings of the ssh config may be used in this step.

    Reference example ssh config:

    create the file C:Users<UserName>.sshconfig and/or add the following lines:
    
    Host <jump host alias>
      Hostname <adress of jump host>
      User <user name at jump host>
      IdentityFile <path to private key for login to the jump host, may have a pass phrase>
      IdentitesOnly yes
    
  • connect to the target server using the following

    \sshfsREMUSER@localhost!<origin port of jump connection>
    

    or similar.

Advanced Usage

It is possible to use the sshfs-win.exe and sshfs.exe programs directly for advanced usage scenarios. Both programs can be found in the bin subdirectory of the SSHFS-Win installation (usually Program FilesSSHFS-Winbin).

The sshfs-win.exe program is useful to launch sshfs.exe from a cmd.exe prompt (sshfs-win cmd) or to launch sshfs.exe under the control of the WinFsp Launcher (sshfs-win svc). The sshfs-win.exe program SHOULD NOT be used from Cygwin. The sshfs-win.exe program has the following usage:

usage: sshfs-win cmd SSHFS_COMMAND_LINE
    SSHFS_COMMAND_LINE  command line to pass to sshfs

usage: sshfs-win svc PREFIX X: [LOCUSER] [SSHFS_OPTIONS]
    PREFIX              Windows UNC prefix (note single backslash)
                        sshfs[.SUFFIX][LOCUSER=]REMUSER@HOST[!PORT][PATH]
                        sshfs: remote user home dir
                        sshfs.r: remote root dir
                        sshfs.k: remote user home dir with key authentication
                        sshfs.kr: remote root dir with key authentication
    LOCUSER             local user (DOMAIN+USERNAME)
    REMUSER             remote user
    HOST                remote host
    PORT                remote port
    PATH                remote path (relative to remote home or root)
    X:                  mount drive
    SSHFS_OPTIONS       additional options to pass to SSHFS

The sshfs.exe program can be used with an existing Cygwin installation, but it requires prior installation of FUSE for Cygwin on that Cygwin installation. FUSE for Cygwin is included with WinFsp and can be installed on a Cygwin installation by executing the command:

$ sh "$(cat /proc/registry32/HKEY_LOCAL_MACHINE/SOFTWARE/WinFsp/InstallDir | tr -d '')"/opt/cygfuse/install.sh
FUSE for Cygwin installed.

Project Organization

This is a simple project:

  • sshfs is a submodule pointing to the original SSHFS project.
  • sshfs-win.c is a simple wrapper around the sshfs program that is used to implement the «Map Network Drive» functionality.
  • sshfs-win.wxs is a the Wix file that describes the SSHFS-Win installer.
  • patches is a directory with a couple of simple patches over SSHFS.
  • Makefile drives the overall process of building SSHFS-Win and packaging it into an MSI.

Building

In order to build SSHFS-Win you will need Cygwin and the following Cygwin packages:

  • gcc-core
  • git
  • libglib2.0-devel
  • make
  • meson
  • patch

You will also need:

  • FUSE for Cygwin. It is included with WinFsp and can be installed on a Cygwin installation by executing the command:

    $ sh "$(cat /proc/registry32/HKEY_LOCAL_MACHINE/SOFTWARE/WinFsp/InstallDir | tr -d '')"/opt/cygfuse/install.sh
    FUSE for Cygwin installed.
    
  • Wix toolset. This is a native Windows package that is used to build the SSHFS-Win MSI installer.

To build:

  • Open a Cygwin prompt.
  • Change directory to the sshfs-win repository.
  • Issue make.
  • The sshfs-win repository includes the upstream SSHFS project as a submodule; if you have not already done so, you must initialize it with git submodule update --init sshfs.

License

SSHFS-Win uses the same license as SSHFS, which is GPLv2+. It interfaces with WinFsp which is GPLv3 with a FLOSS exception.

It also packages the following components:

  • Cygwin: LGPLv3
  • GLib2: LGPLv2
  • SSH: «all components are under a BSD licence, or a licence more free than that»

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 updatesudo apt install sshfs

Установка SSHFS на CentOS

В CentOS и других производных от Red Hat выполните следующую команду для установки sshfs:

sudo yum install sshfs

Установка SSHFS на macOS

Пользователи macOS могут установить клиент SSHFS, загрузив пакеты FUSE и SSHFS с сайта osxfuse или через Homebrew:

brew cask install osxfusebrew install sshfs

Установка SSHFS в Windows

Пользователям Windows необходимо установить два пакета: WinFsp и SSHFS-Win.

  • WinFsp .
  • SSHFS-Win .

Монтирование удаленной файловой системы

Следующие инструкции применимы для всех дистрибутивов Linux и macOS.

Чтобы смонтировать удаленный каталог, пользователь SSH должен иметь к нему доступ. Команда монтирования SSHFS принимает следующий вид:

sshfs [[email protected]]host:[remote_directory] mountpoint [options]

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

Например, чтобы смонтировать домашний каталог пользователя с именем «linuxize» на удаленном хосте с IP-адресом «192.168.121.121», сначала создайте каталог, который будет служить точкой монтирования, это может быть любое место, которое вы хотите:

mkdir ~/linuxizeremote

Затем используйте команду sshfs для монтирования удаленного каталога:

sshfs [email protected]:/home/linuxize /home/linuxize/linuxizeremote

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

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

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

Чтобы смонтировать удаленный каталог через SSHFS из /etc/fstab , используйте fuse.sshfs в качестве типа файловой системы.

/etc/fstab

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

Монтирование удаленной файловой системы в Windows

Пользователи Windows могут использовать проводник Windows, чтобы подключить сетевой диск к удаленному каталогу на SSH-сервере.

Откройте проводник Windows, щелкните правой кнопкой мыши «Этот компьютер» и выберите «Подключить сетевой диск». Выберите диск для монтирования и в поле «Папка» введите удаленного пользователя, сервер и путь в следующем формате:

На момент написания этой статьи SSHFS-Win не поддерживает аутентификацию на основе ключей, поэтому удаленный сервер SSH должен быть настроен для принятия аутентификации на основе пароля.

Для получения более подробной информации обратитесь к руководству по SSHFS-Win .

Отключение удаленной файловой системы

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

fusermount -u /local/mountpoint
umount /local/mountpoint

Выводы

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

Чтобы получить полный список опций sshfs, введите в терминале man sshfs .

Вы также можете ограничить доступ пользователей к их домашнему каталогу, настроив среду SFTP Chroot Jail и изменив порт SSH по умолчанию, чтобы добавить дополнительный уровень безопасности на ваш сервер.

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

Введение

SSHFS — хороший инструмент для подключения сетевых дисков. При стабильном сетевом соединении связь с таким сетевым диском может держаться неделями без разрыва. Несколько проектов могут использовать один и тот же диск с помощью этого решения.

Зачем это мне?

Есть несколько сценариев использования, для которых потребуется сетевой диск:

  1. Объединение данных между двумя серверами. При сетевом соединении данные не повреждаются в случае, если они одновременно не используются на запись на обеих машинах.
  2. Передача данных на сервер, представление файлов сайта прямо в обозревателе файлов.
  3. Резервное копирование необходимых данных.

Поднять SSHFS сервер проще простого, если функционирует SSH доступ и SFTP доступ, то дополнительных действий не требуется. SSHFS — это нечто вроде продолжения технологии SFTP.

Привязывание к каталогам

Вы можете привязать определённого пользователя к конкретной директории на удалённой системе. Это может быть выполнено путём редактирования файла sshd_config:

/etc/ssh/sshd_config ….. Match User «someuser» ChrootDirectory «/chroot/%u» ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no …..

SSHFS для Linux

С клиентом для Linux дело обстоит просто. Сначала установите его командой для Ubuntu:

sudo apt update && sudo apt update && sudo apt install sshfs

Для CentOS:

yum install sshfs

После установки можете осуществлять подключение к серверу командой:

sshfs login@ipaddress:route mountpoint -p port

Вместе login укажите логин на сервере, к которому подключаетесь, вместо ipaddress укажите IP адрес вместо route укажите путь на сервере, к которому подключаетесь. mountpoint является точкой монтирования в локальной ОС. Папка должна существовать! Вместо port укажите порт, на котором слушает SSH сервер.

SSHFS также умеет конвертировать ID локального пользователя, подробнее смотрите в man по sshfs.

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

fusermount -u mountpoint

Где mountpoint — точка подключения, которую указывали при подключении.

SSHFS клиент для Windows

С клиентом для Windows могут быть сложности. Например, именование файлов в ext4 допустимо в верхнем и нижнем регистре, а Windows не понимает разницы между ними. Например, файлы README и readme для Windows будут считаться одним файлом. Так что будьте внимательны при использовании SSHFS на Windows.

Вы можете использовать графический интерфейс для упрощения работы с SSHFS в Windows. Этим способом и будем пользоваться.

Для начала скачайте и установите программы:

  1. sshfs-win GitHub
  2. Стабильную версию WinFsp
  3. sshfs-win-manager

После того, как всё установили, у Вас появится новая установленная программа. Найдите её в меню пуск и запустите. Она называется SSHFS Win Manager.

20200828104304_SSHFS-Win_Manager.png

Нажмите кнопку «Add connection» и заполните поля, указав настройки подключения:

  • В поле NAME укажите удобное имя. Под ним диск будет отображаться в проводнике.
  • В поле IP/Host укажите IP адрес а в поле Port укажите TCP порт, по которому слушает SSH-сервер. Если используется проброс портов, то указываете порт, на который сделан проброс (порт для внешнего мира).
  • В поле USER укажите пользователя в Linux на сервер, к которому подключаетесь.
  • В выборе Authentification method выберите Password, если используется авторизация по паролю или Private key (file), если используется SSH RSA ключ.
  • В поле PASSWORD укажите пароль, но только в случае, если используется авторизация по паролю.
  • В поле KEY FILE укажите путь к id_rsa Подробнее про этот файл читайте в инструкции Использование SSH с доступом по ключам.
  • В поле Remote укажите директорию, под которой будет подан сетевой диск. То есть указанная директория превратится в сетевой диск.
  • В выборе Drive Letter выберите букву диска, под которой диск должен отображаться в проводнике. Будьте внимательны, он не должен повторяться, то есть буква диска должна быть уникальной!

Нажмите Save, а затем на значок вставки штепселя в розетку. Проверьте, появился ли новый диск в проводнике. Если да, значит настроили всё верно. Теперь его можно использовать.

SSHFS (SSH Filesystem) – это кли­ент фай­ло­вой систе­мы на осно­ве FUSE для мон­ти­ро­ва­ния уда­лен­ных ката­ло­гов по SSH-соеди­не­нию. SSHFS исполь­зу­ет про­то­кол SFTP, кото­рый явля­ет­ся под­си­сте­мой SSH и вклю­чен по умол­ча­нию на боль­шин­стве сер­ве­ров SSH.

По срав­не­нию с дру­ги­ми про­то­ко­ла­ми сете­вой фай­ло­вой систе­мы, таки­ми как NFS и Samba, пре­иму­ще­ство SSHFS заклю­ча­ет­ся в том, что он не тре­бу­ет какой-либо допол­ни­тель­ной настрой­ки на сто­роне сер­ве­ра. Для исполь­зо­ва­ния SSHFS вам нужен толь­ко SSH-доступ к уда­лен­но­му серверу.

Посколь­ку SSHFS исполь­зу­ет SFTP, все пере­да­ва­е­мые дан­ные меж­ду сер­ве­ром и кли­ен­том долж­ны быть зашиф­ро­ва­ны и рас­шиф­ро­ва­ны. Это при­во­дит к слег­ка ухуд­шен­ной про­из­во­ди­тель­но­сти по срав­не­нию с NFS и более высо­кой загруз­ке ЦП на кли­ен­те и сервере.

Из этой ста­тьи вы узна­е­те, как уста­но­вить кли­ент SSHFS в Linux, macOS и Windows и как смон­ти­ро­вать уда­лен­ный каталог.

Паке­ты SSHFS доступ­ны для всех основ­ных опе­ра­ци­он­ных систем, и уста­нов­ка доволь­но проста.

SSHFS досту­пен из репо­зи­то­ри­ев Ubuntu и Debian по умол­ча­нию. Обно­ви­те индекс паке­тов и уста­но­ви­те кли­ент sshfs, набрав:

sudo apt updatesudo apt install sshfs

В CentOS и дру­гих про­из­вод­ных Red Hat для уста­нов­ки sshfs выпол­ни­те сле­ду­ю­щую команду:

Поль­зо­ва­те­ли macOS могут уста­но­вить кли­ент SSHFS, загру­зив паке­ты FUSE и SSHFS с сай­та osxfuse или через Homebrew:

brew cask install osxfusebrew install sshfs

Поль­зо­ва­те­лям Windows необ­хо­ди­мо уста­но­вить два паке­та, WinFsp и SSHFS-Win.

  • WinFsp.
  • SSHFS-Win.

Сле­ду­ю­щие инструк­ции при­ме­ни­мы для всех дис­три­бу­ти­вов Linux и macOS.

Что­бы смон­ти­ро­вать уда­лен­ный ката­лог, поль­зо­ва­тель SSH дол­жен иметь доступ к нему. Коман­да мон­ти­ро­ва­ния SSHFS име­ет сле­ду­ю­щий вид:

sshfs [user@]host:[remote_directory] mountpoint [options]

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

Напри­мер, что­бы смон­ти­ро­вать домаш­ний ката­лог поль­зо­ва­те­ля с име­нем «andreyex» на уда­лен­ном хосте с IP-адре­сом «192.168.111.011», сна­ча­ла создай­те каталог,который будет слу­жить точ­кой мон­ти­ро­ва­ния, это может быть любое местоположение:

Затем исполь­зуй­те коман­ду sshfs для мон­ти­ро­ва­ния уда­лен­но­го каталога:

sshfs andreyex@192.168.111.011:/home/andreyex /home/andreyex/andreyexremote

Вам будет пред­ло­же­но вве­сти пароль поль­зо­ва­те­ля. Что­бы избе­жать вво­да паро­ля каж­дый раз, когда вы мон­ти­ру­е­те уда­лен­ный ката­лог, гене­ри­руй­те SSH-клю­чи и настра­и­вай­те Passwordless SSH Login.

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

Если вы хоти­те авто­ма­ти­че­ски мон­ти­ро­вать уда­лен­ный ката­лог, вам нуж­но отре­дак­ти­ро­вать файл /etc/fstab локаль­но­го ком­пью­те­ра и доба­вить новую запись о мон­ти­ро­ва­нии. Таким обра­зом, когда ваша систе­ма загру­жа­ет­ся, она авто­ма­ти­че­ски мон­ти­ру­ет уда­лен­ный каталог.

Что­бы смон­ти­ро­вать уда­лен­ный ката­лог через SSHFS /etc/fstab, исполь­зуй­те fuse.sshfs в каче­стве типа фай­ло­вой системы.

/etc/fstab

user@host:/remote/dir  /local/mountpoint  fuse.sshfs  defaults  0  0

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

Поль­зо­ва­те­ли Windows могут исполь­зо­вать про­вод­ник Windows для сопо­став­ле­ния сете­во­го дис­ка с уда­лен­ным ката­ло­гом на сер­ве­ре SSH.

Открой­те про­вод­ник Windows, щелк­ни­те пра­вой кноп­кой мыши «Мой ком­пью­тер» и выбе­ри­те «Под­клю­чить сете­вой диск». Выбе­ри­те диск для мон­ти­ро­ва­ния и в поле «Пап­ка» вве­ди­те уда­лен­но­го поль­зо­ва­те­ля, сер­вер и путь в сле­ду­ю­щем формате:

На момент напи­са­ния этой ста­тьи SSHFS-Win не под­дер­жи­ва­ет аутен­ти­фи­ка­цию на осно­ве клю­чей, поэто­му необ­хо­ди­мо настро­ить уда­лен­ный ssh-сер­вер для при­ня­тия аутен­ти­фи­ка­ции на осно­ве пароля.

Что­бы отсо­еди­нить смон­ти­ро­ван­ную фай­ло­вую систе­му, исполь­зуй­те коман­ду umount или, fusermount а затем ката­лог, в кото­ром она была смон­ти­ро­ва­на (точ­ка монтирования):

fusermount -u /local/mountpoint

Из этой ста­тьи вы узна­ли, как исполь­зо­вать SSHFS для мон­ти­ро­ва­ния уда­лен­но­го ката­ло­га через SSH. Это может быть полез­но, когда вы хоти­те вза­и­мо­дей­ство­вать с уда­лен­ны­ми фай­ла­ми с помо­щью при­ло­же­ний на локаль­ном компьютере.

Для полу­че­ния пол­но­го спис­ка опций sshfs вве­ди­те man sshfs в свой терминал.

Понравилась статья? Поделить с друзьями:
  • Windows пишет что нет интернета хотя он есть
  • Windows пишет ваша копия windows не является подлинной сборка 7601
  • Windows пингует linux а linux нет
  • Windows перетаскивание объекта при нажатой клавише ctrl приводит к
  • Windows перестал видеть жесткий диск в биосе есть