SSHFS 远程目录挂载语法

gat*_*ack 8 sshfs windows-10

一台 Windows-10 64 位 PC 配备了:

远程 linux 目录 ( mydirectory) 将挂载到 S:。该语法记录在这里。

“婴儿步骤”表示初步成功(非管理员 CLI):

net use S: \\sshfs\user@hostname.com\..\..
Run Code Online (Sandbox Code Playgroud)

但是这不会安装 mydirectory

其他用户 尝试挂载目标目录失败。从 Admin 命令行尝试失败:

net use S: \\sshfs\user@hostname.com\\mnt\MOUNTPOINT\mydirectory
Run Code Online (Sandbox Code Playgroud)

发生系统错误 67。 The network name can not be found

其他故障:

net use S: \\sshfs\user@hostname.com\mnt\MOUNTPOINT\mydirectory
net use S: \\sshfs\user@hostname.com:\mnt\MOUNTPOINT\mydirectory
Run Code Online (Sandbox Code Playgroud)

出于某种原因,语法是这样的,尽管输入了用户名,但我还是需要输入用户名和密码:user@hostname

  • 挂载mydirectory到 S: 驱动器的正确语法是什么?
  • 可以执行哪些诊断来确定纠正措施?

小智 7

简单回答:

使用\\sshfs.r而不是\\sshfs

长答案:

访问远程文件夹的简单语法是:

\\prefix\remoteuser@host[\path]
Run Code Online (Sandbox Code Playgroud)

根据 SSHFS-Win 自述文件,指定连接时需要使用 4 个前缀(UNC 语法部分):

"sshfs", "sshfs.r", "sshfs.k", "sshfs.kr"
Run Code Online (Sandbox Code Playgroud)

前缀影响路径的解释方式。在“sshfs”中,路径是相对于 的remoteuser主文件夹(通常是 /home/remoteuser)。所以,当你这样做时

net use S: \\sshfs\user@hostname.com\mnt\MOUNTPOINT\mydirectory
Run Code Online (Sandbox Code Playgroud)

您正在尝试挂载 /home/user/mnt/MOUNTPOINT/mydirectory

在这种情况下,您应该使用sshfs.r前缀,其中路径相对于根目录 ( /):

net use S: \\sshfs.r\user@hostname.com\mnt\MOUNTPOINT\mydirectory
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。


Kri*_*aan 6

在我的 Windows 10 安装远程 ssh 服务器的主目录中,使用命令在用户的 powershell 中工作

net use S: \\sshfs\user@host\.
Run Code Online (Sandbox Code Playgroud)

注意末尾的单点!没有点它不起作用。要安装根文件夹,请使用

net use S: \\sshfs\user@host\..\..
Run Code Online (Sandbox Code Playgroud)

在 Windows 资源管理器 -> 此 PC -> 映射网络驱动器上的工作方式相同(但语法不同)。在我的系统中,我必须输入带有两个反斜杠的路径:for root

\\sshfs\user@host/../..
Run Code Online (Sandbox Code Playgroud)

为家

\\sshfs\user@host/
Run Code Online (Sandbox Code Playgroud)

注意这里的正斜杠!您可能需要在随后的几个对话框中标记“使用不同的凭据”并输入用户名/密码。

  • 最后!... `\\sshfs\user@host!port/` 是我需要的,所以我可以通过 ssh 将本地 Windows 10 驱动器号映射到 Linux 文件夹。)谢谢。 (3认同)
  • 你可以使用`net use S:\\sshfs.r\user@host`(注意sshfs后面的`.r`)命令挂载根目录。 (2认同)

Jef*_*eff 0

如果您收到拒绝访问错误,则可能是权限问题,而不是语法问题。验证您的 ssh 用户是否有权通过 ssh 访问服务器,并且该用户是否有权访问该特定目录。您可能还想尝试从 Windows 中的管理提示符运行该命令,以确保这不是 sshfs 的 Windows 权限问题。