Xming 无法通过 Windows 资源管理器找到 SSH.exe

Xming 无法通过 Windows 资源管理器找到 SSH.exe

我希望这是提出这个问题的正确地方,因为这有点像 Windows 问题。我的问题是:当我在 WSL 上有一个我想运行的 OpenGL 程序时,尝试使用 Xming“转发”(我认为)X11,我找不到我的 SSH.exe!

除此之外,我可以。

ssh.exe在 Xming 选择资源管理器之外搜索时可见的图像ssh.exe

在 Xming ssh.exe 选择浏览器之外搜索时可以看到 ssh.exe 的图像

还有,where不起作用?

PS C:\Windows\System32\OpenSSH> where .\ssh.exe
PS C:\Windows\System32\OpenSSH>

我曾是在 .exe 所在的目录中,where不知为何却找不到它。Xming 本身也找不到它,因为当我打开时C:\Windows\System32\,OpenSSH 目录显然不存在!见屏幕截图。

尝试通过 Xming XLaunch 程序时 OpenSSH 目录不可用的图像:

尝试通过 Xming XLaunch 程序时 OpenSSH 目录不可用的图像

我以前从未见过这种事情发生,所以我不知道这里可能具体与哪些设置相关。

我还尝试了其他一些方法:

  • 尝试标记\OpenSSH\为非只读,但即使具有管理员权限也无法这样做。也许这是明智的。
  • PuTTy 连接,这会导致另一个问题的错误。类似“预期与服务器进行密钥交换”。
  • 将 SSH .exe 复制到几个不同的位置,但没有成功,因为 Xming 仍然找不到我的任何尝试。

我试过 vcXsrv,但也无法让它工作。我愿意听取建议,我的最终目标是尝试运行我在 WSL 上安装的 OpenGL 程序。我推测,由于 WSL 没有自己的窗口系统,我们必须以某种方式连接到 Windows?不完全理解这个过程。如果有更简单的方法,或者某种方法可以解决我描述的问题,请告诉我。

答案1

ssh.exe位于 下,这C:\Windows\System32是一个神奇的文件夹。对于 32 位和 64 位进程,它是不同的。对于 64 位进程,它映射到 (不可见) C:\Windows\Sysnative,而对于 32 位进程,它映射到C:\Windows\SysWOW64(可能不完全是这样,但足以让您了解)。大多数二进制文件都存在于 32 位和 64 位变体中。

OpenSSH仅存在于 64 位版本中(C:\Windows\Sysnative\OpenSSH)。因此 32 位进程无法通过 来定位它PATH,因为 包含C:\Windows\System32\OpenSSH,而 对他们来说,这映射到不存在的C:\Windows\SysWOW64\OpenSSH

我假设您的 Xming 是 32 位,您的 PowerShell 实例也是如此。

您可以改用完整路径:

C:\Windows\Sysnative\OpenSSH\ssh.exe

答案2

where您的命令不起作用的原因解释:where在 PowerShell 中是该函数的别名Where-Object,它可以找到 powershell 对象,不是文件。如果您想搜索文件,请使用where.exe

(我本来想将此写为评论,但我的声誉不够。)

相关内容