如何在两台 Windows 10 计算机之间通过 SSH 访问文件夹

如何在两台 Windows 10 计算机之间通过 SSH 访问文件夹

我想在 Windows 10 中使用 bash 建立 SSH 隧道并将远程文件夹挂载到本地文件夹。

到目前为止,我一直在每台 Windows 机器上的 VirtualBox 中使用 Ubuntu,运行 sshfs 服务器,然后将文件夹作为 samba 网络共享与主机共享。我希望简化这一过程。理想情况下,在 Windows 10 中使用 bash。

我也尝试过在 Windows 上使用带环回适配器的 Putty,但始终无法让它正常工作。我是普通用户。

答案1

我最终使用了 Windows Subsystem for Linux (WSL) 版本 2(Windows 10 build 2004)。为了挂载远程位置,我使用了需要 FUSE 才能工作的 sshfs。但 FUSE 在 WSL1 上不起作用。

因此现在在 Windows 10 上的 WSL2 上的 Ubuntu bash 中我可以运行:

sudo sshfs [email protected]:/ /home/thomas/Farone2  -o allow_other -o port=222 -o reconnect -o identityfile=/home/thomas/.ssh/id_rsa

在 WSL1 上我遇到了错误:

fuse: device not found, try 'modprobe fuse' first

thomas@ThomasLondon:~$ modprobe fuse modprobe: FATAL: Module fuse not
found in directory /lib/modules/4.4.0-18362-Microsoft

sshfs 命令在 Windows 10 上的 WSL2 中的 Ubuntu bash 中按预期运行

现在,我已经通过 SSH 从另一台 Windows 10 PC 映射了远程位置,并且 Windows 10 可以像处理本地存储的文件一样处理这些文件。远程计算机上正在运行 WSL1,并且正在运行 SSH 服务。

我使用 Windows 任务计划程序自动执行此操作,该计划程序运行脚本以在启动或 WorkStationUnlock 等时自动挂载远程位置。

如果要自动运行,您需要使用密钥文件选项通过密钥进行身份验证,这样就不需要密码来访问远程 PC。

您还需要编辑 Ubuntu 中的 sudoers 文件,这样您运行使用 sudo 挂载文件夹的脚本就不需要密码了。

有关使用任务计划程序运行 bash 脚本的更多信息,请参见:

https://dev.to/ironfroggy/wsl-tips-starting-linux-background-services-on-windows-login-3o98

https://www.illuminiastudios.com/dev-diaries/ssh-on-windows-subsystem-for-linux/

相关内容