Монтирование сетевого диска по SSH (SSHFS) в Windows

Для подключения файловой системы удаленного сервера в качестве сетевого диска в Windows можно использовать защищенный протокол SSH (вместо стандартного SMB/samba). Это удобно, когда нужно сделать файлы на удаленном SSH сервере доступными для локальной работы без использования дополнительных FTP/SFTP подключений. Для монтирования удаленных файловых систем в Windows можно использовать клиент SSHFS-Win. Этот клиент позволяет прозрачно подключать каталоги с удаленных компьютеров по протоколу SSHFS (основан на протоколе передачи SFTP, SSH File Transfer Protocol).

Можно скачать MSI установщик SSHFS-Win вручную или установить его через встроенный пакетный менеджер WinGet:

winget install SSHFS-Win.SSHFS-Win

Теперь можно смонтировать удаленную папку в виде сетевого диска прямо из проводника File Windows. Щелкните правой мышкой по значку Этот компьютер и выберите Подключить сетевой диск. Здесь нужно выбрать букву диска, которую нужно назначить и указать UNC путь к удаленной директории в формате:

\prefix\user@host[!PORT][\PATH]

User – учетная запись для аутентификации на удаленном SSH хосте

Host – имя/IP адрес хоста

В качестве префикса нужно указать один из следующих значений:

  • sshfs – подключиться в домашний каталог пользователя (в случае Windows это каталог профиля пользователя). Дополнительно указать относительный путь к людому каталогу в профиле пользователя.
  • sshfs.r – подключиться к корневой папке системы (в случае Windows это будет корень системного диска)
  • sshfs.k – подключиться в домашний каталог пользователя. Для аутентификации использовать SSH ключ в %USERPROFILE%/.ssh/id_rsa
  • sshfs.kr – подключиться к корневой директории с SSH ключом

Например, для монтирования каталога C:PS с удаленного Windows хоста (на котором настроен SSH сервер), введите такой UNC путь:

\sshfs.radministrator@192.168.158.100ps

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

После этого в проводнике Windows появится отдельной сетевой диск, подключенный по SSHFS.

Также можно подключить сетевой диск из командной строки с помощью стандартной команды net use .

Следующая команда смонтирует каталог /var/www на Linux сервере в качестве сетевого диска Windows:

net use W: \sshfs.rsysops@192.168.158.131varwww /user:sysops

Смонтировать локальную папку с Windows хоста:

net use m: \sshfs.radministrator@192.168.158.100ps /user:administrator

При подключении нужно будет ввести пароль пользователя.

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

Чтобы не вводить пароль пользователя для подключения, можно сохранить пароль в Windows Credential Manager с помощью:

cmdkey /add:192.168.158.13 /user:sysops /pass:Passw0rdd1

Одновременно через провайдера WinFsp.Np может быть подключено несколько сетевых папок. Вывести список подключенных дисков:

net use

Удалить один из дисков:

net use M: /delete

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

Сгенерируйте SSH ключи в Windows с помощью утилиты ssh-keygen согласно мануалу по ссылке (не указывайте пароль для защиты закрытого ключа). Добавьте открытый ключ из файла .pub в файл authorized_keys (или administrators_authorized_keys ) на удаленном SSH сервере.

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

$rUser = "administator"
$rHost = "m-fs01.winitpro.ru"
$remoteDir = "Install"
$Drive = "M:"
$privSSHKey = "C:secretm-fs01-id_rsa"
cd  'C:Program FilesSSHFS-Winbin'
$mountcmd = ".sshfs-win.exe svc sshfs.k$rUser@$rHost$remoteDir $Drive -IdentityFile=$privSSHKey"
Invoke-Expression $mountcmd

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


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *