为什么我需要管理员帐户才能通过 ssh 挂载网络驱动器?

为什么我需要管理员帐户才能通过 ssh 挂载网络驱动器?

我正在尝试在 Windows 10 上通过 OpenSSH 挂载网络驱动器(使用非管理员用户的用户名和密码进行身份验证)。当我使用命令net use(通过 PowerShell 脚本)将本地文件夹挂载到 ssh 中的网络驱动器时,出现以下错误:

The password is invalid for <PATH>

当我在本地计算机上以同一用户身份运行完全相同的脚本时,它无需管理员访问权限即可运行。如果我通过 SSH 输入管理员凭据,它也会运行。有没有办法让它通过 ssh 运行而无需管理员访问权限?

编辑:

根据这个问题: https://github.com/PowerShell/Win32-OpenSSH/issues/139 只要使用用户名/密码来验证 ssh,我所做的就是可能的。

答案1

继续我的评论...

https://github.com/PowerShell/Win32-OpenSSH/issues/139

“这是设计使然。映射的网络驱动器与登录会话相关联。SSH 远程会话是通过关联的网络登录会话创建的(这些会话独立于其他登录会话)。”

如果您确实使用密码登录,则可以在 sshd 会话中映射驱动器,如下所示:

net use t: \vboxsrv\sharename

如果通过公钥登录或远程共享需要不同的用户名和密码凭证,您可以执行以下操作:

net use t: \vboxsrv\sharename /user:domainname/username *

然后在提示时输入密码。

只是对网络驱动器号发表一下评论。

我个人不喜欢它们,因为它们有很多副作用,而且这些副作用并不总是立即可见的。

  • 它们仅在创建它们的会话(桌面会话)中有效。它们在运行 Windows 服务的会话中不可见。在编写要作为计划任务运行的应用程序时,这也是一个问题
  • 它们是用户特定的。(请记住,用户帐户名称只是一个标签,用户是由唯一标识符 (SID) 内部标识的,不同机器上的本地帐户和域帐户的 SID 始终不同。在本地机器上创建用户“peter”,删除该帐户并在同一台机器上再次创建它将导致此用户有两个不同的 SID(当然主目录也不同)。c:\users\peter 由登录到机器的第一个“peter”拥有。第二个用户 Peter 将获得计算机名或域名的附录(取决于第二个用户所属的位置)。如果这仍然不是唯一的,则会在 username.domain.0001 后附加一个数字(以防删除后重新创建用户)
  • 如果您定义持久网络驱动器号 - 它们在资源管理器上下文之外不起作用。只有 explorer.exe 能够重新连接它们
  • 在资源管理器中连接的网络驱动器无法在提升的程序中访问,反之亦然
  • 它们限制了服务器上可安装的磁盘卷数量
    • 字母表仍然只有 25 个字母。

从 Windows Vista 开始,我们能够使用符号链接,允许您将基于 UNC 路径的目录和文件链接到本地​​文件系统,而无需使用网络驱动器号。

如果您需要在网络连接上使用不同的凭据,则应使用 Windows 凭据管理器(控制面板)将凭据存储到此位置。如果您想在 cmd.exe、powershell 或 ssh 中定义凭据 - 然后使用 cmdkey.exe - 它会将其存储在 Windows 凭据管理器中。

相关内容