Монтирование сетевого диска по 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

Установка клиента 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.r\[email protected]\ps

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

Подключение сетевого диска из проводника Windows с помощью USNC пути sshfs

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

Сетевой диск подключен по SSH в Windows 11

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

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

net use W: \\sshfs.r\[email protected]\var\www /user:sysops

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

net use m: \\sshfs.r\[email protected]\ps /user:administrator

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

net use подключение sshfs диска

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

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

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

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

net use

net use - список дисков подключённых по SSH/ WinFsp.Np

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

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:\secret\m-fs01-id_rsa"
cd  'C:\Program Files\SSHFS-Win\bin\'
$mountcmd = ".\sshfs-win.exe svc \sshfs.k\$rUser@$rHost$remoteDir $Drive -IdentityFile=$privSSHKey"
Invoke-Expression $mountcmd

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

SSHFS-Win-Manager - графический клиент для подключения дисков по SSH


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

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

Я не робот( Обязательно отметьте)