如何通过SSH在Windows中挂载远程Linux文件夹?

165

我是一名盲人学生,目前正在上系统管理员/Shell编程课程。虽然SSH可以很好地执行像ls,pwd等命令,但编辑器在我的屏幕阅读器和SSH会话中无法正常工作。我想知道是否可以通过SSH挂载Linux文件夹,使其出现为Windows驱动器?这样,我就可以使用易于访问的软件编辑任何需要的文件,而不必不断地使用SCP来发送文件。


你使用的是哪个Linux发行版?你有root访问权限或其他安装软件的方式吗? - neesh
一个带有共享文件夹的小型Linux虚拟机就可以了(至少Ubuntu 10.04支持sshfs)- 如果你有一些多余的内存/CPU。 - mbx
在SU上有一个关于“在Windows上通过SSH映射远程驱动器”的重复问题,链接为http://superuser.com/questions/291786。在SF上也有一个关于“将SFTP连接映射为Windows驱动器的开源工具”的问题,链接为http://serverfault.com/questions/6919/is-there-an-open-source-tool-to-map-sftp-connections-as-a-windows-mapped-drive。 - Dan Dascalescu
10个回答

96

回到2002年,Novell开发了一些名为NetDrive的软件,可以将WebDAV、FTP、SFTP等共享映射到Windows驱动器号。它现在已经是弃用软件,不再维护(也不在Novell网站上提供),但可免费使用。我通过搜索“netdrive.exe”找到了很多可供下载的版本,我实际上下载了几个并比较它们的md5sum,以确保我得到了常见(且希望安全)的版本。

更新于2017年11月10日SFTPNetDrive是原始netdrive项目的当前项目。他们使其免费供个人使用:

我们为个人使用免费提供SFTP Net Drive

他们在网站上也有付费选项。


1
第二个 :(. 不管怎样,资源管理器集成值得一提。 - Sunny Milenov
13
Netdrive 4.1似乎不能处理SFTP。 - rpilkey
1
这个能在Windows 10上兼容吗? - stephanmg
2
谢谢您。我已经成功在Windows 10上安装了。 - tshenolo
2
SFTP Drive 可在 Windows 11 中使用。 - ali14

43

Dokan 看起来像是 Windows 平台上的 FUSE 和 sshfs 实现。如果它能如预期和宣传的那样工作,它将完全符合你的需求。

(链接已更新并可用,截至 2015-10-15)


3
目前在x64上SSHFS无法工作。 - sorin
1
刚刚安装了最新的DOkan要求,但今天尝试使用OpenSSH密钥对连接时它一直崩溃。 - Dan Dascalescu
1
@ Sorin Sbarnea:曾经是真的,但现在不再是真的了。 - Stefan Steiger
5
无法在 Windows 7 64 位系统上运行。经常崩溃。有人找到了一些解决方法吗? - m1k3y3
3
这是我发现的一个关于安装和使用Win-SSHFS和DOKANY(DOKAN)步骤的优秀文章:https://igikorn.com/sshfs-windows-10/。 - Gabriel Staples
显示剩余8条评论

29
我找到的最好、最简单的解决方案是https://github.com/billziss-gh/sshfs-win,连接的服务器会显示为完全功能的网络驱动器。这不是基于“Dokany”或“dokan”的解决方案,根据经验,这种解决方案似乎更稳定和高效,也请参见WinFsp Performance Testing

mount ssh on windows

请注意,此前的答案中提到了https://github.com/Foreveryone-cz/win-sshfshttp://www.swish-sftp.org/,但我不再使用它们,第一个停止工作,第二个创建的驱动程序在所有程序中都不完全受支持。

5
很好的工具 :) 但我希望可以使用驱动器号连接它... 比如说,我想将sftp://server.com/dir/subdir 连接为 Z:\subdir - 但它似乎不起作用 :( - Artur Iwan
2
@endolith 这是读写模式;你可能只有读取权限。 - Daniel Sokolowski
5
大多数应用程序不支持Swish路径(不是UNC路径)。因此它在这里没有帮助。 - Christian
它不支持SSH密钥文件。 :-( - Mirko
@Mirko 它支持 ssh 代理(如 Pageant),您可以添加您的 ssh 密钥。非常好用! - lephleg
@Christian 正确,我也遇到了同样的问题,这就是为什么我使用 win-sshfs,它没有这个限制。 - Daniel Sokolowski

14

对我来说可以工作,只是有点慢。 - bobince
@Vinko Vrsalovic:从很久以前开始,具体日期不清楚。只是在大约半年前之前,在x64上它并不能完全无误地工作。更好的问题是如何在Windows上创建RSA密钥,但是在这里,gitbash @ google-code可以提供帮助。 - Stefan Steiger
@Quandary:太好了。上次我尝试过,它并没有做到这一点。 - Vinko Vrsalovic
这看起来很酷。不幸的是,当前版本(2)在Windows 8上无法运行。安装程序告诉我版本3将支持Windows 8。 - Alex K

5

5
在慢速/高延迟(几乎任何不是您的局域网)的连接上使用Samba非常糟糕。 - ThiefMaster
@ThiefMaster,我完全同意你的观点,虚拟机中Samba的文件读取性能太差了。 - inix

4
你需要在Windows机器上挂载远程共享。这就是Samba/smb的作用。
你要做的是将Linux框架变成SMB服务器,这样它可以以与Windows兼容的方式共享文件。
如果你不在同一网络中,你需要通过SSH连接来进行隧道传输,但这可能不值得努力。

使用PuTTy进行SSH隧道并不那么困难。连接时它会自动启动隧道。如果你将其设置为在启动时运行,并使用无密码的私钥登录(警告,不安全!!!),你将立即准备就绪。 - user54650
我宁愿不设置Samba,因为这是班上其他人不会使用的额外步骤。此外,我更信任SSH而不是Samba,校园网络也不是我所谓的安全,考虑到有多少学生在上面使用个人电脑运行着不知道什么东西。 - Jared
2
Jared:如果你选择了Samba,你仍然需要通过SSH隧道进行连接,所以它和SSH一样安全。如果你真的想要一个简单的拖放方法,那么像其他人建议的WinSCP就很不错。 - Michael Haren

1

网站已不存在。 - pal4life

0

我认为你不能仅通过ssh访问在Linux下的文件夹并将其挂载为网络驱动器。我建议你使用WinSCP,它允许你通过ssh传输文件,并且是免费的。

编辑:很抱歉,Vinko在我之前发表了评论,现在我学到了一件新事情 :)


0

显然,来自Novell的免费NetDrive软件可以访问SFTP文件服务器。


0

以下是第二个David的回答:当用户登录时,我需要自动挂载网络驱动器。 Dokan SSHFS是一个不错的工具,但在这种情况下并不可靠。我找到的Netdrive副本不支持SSHFS或sftp - 不确定是否有更新版本支持。

我正在尝试的解决方案涉及添加一个虚拟网络适配器(禁用文件共享),使用plink通过新适配器打开到运行SAMBA的远程机器的隧道,并针对新适配器挂载网络驱动器。这里还有另一个有用的教程 http://www.blisstonia.com/eolson/notes/smboverssh.php

可以使用登录脚本设置隧道和网络驱动器,因此登录后几秒钟,用户就可以使用映射的驱动器,无需采取任何操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接