SSH 未被识别为 cmdlet 的名称 - 客户端已安装且路径正确

SPR*_*BRN 6 powershell openssh windows-10

OpenSSH 客户端已安装。为了确保一切正常,我将其删除并重新安装,但这没有什么区别。

SSH 客户端已安装

Path 变量包括 OpenSSH。

路径变量

Windows 资源管理器显示文件夹 C:\Windows\System32\OpenSSH 存在。

OpenSSH 的资源管理器文件夹

通过Powershell,该文件夹不存在。并且 SSH 不起作用。嗯,OpenSSH 服务器可以工作,但客户端不能。

Powershell SSH 失败

如何在此系统上启动 OpenSSH 客户端?

Red*_*dio 8

我认为这些错误是由使用 Powershell(x86) 而不是 Powershell 引起的。使用Powershell(x86)时,我也收到错误:

\n

在此输入图像描述

\n

但如果我使用Powershell,那么一切正常

\n

在此输入图像描述

\n

Powershell (x86) 是 32 位版本,而 Powershell 是 64 位版本,如下所述

\n
\n

在 Windows 64 位版本上,您将找到 32 位和 64 位版本的 PowerShell,以实现向后兼容。如果您在 Windows 开始屏幕上键入 \xe2\x80\x9cPowerShell\xe2\x80\x9d,您将在 32 位版本的 PowerShell 和 PowerShell ISE 后面看到 \xe2\x80\x9cx86\xe2\x80\x9d。

\n
\n
\n

总的来说,64 位和 32 位 PowerShell 版本是兼容的,您应该\xe2\x80\x99 不会注意到很大的差异。如果涉及二进制文件,可能会出现问题。例如,如果您想使用管理单元(编译的 cmdlet)扩展 PowerShell,则必须确保下载正确的版本。如果您想使用 64 位版本的 PowerShell 实例化 32 位应用程序(例如 Microsoft Office)的对象,也可能会遇到问题。

\n
\n

  • 事实证明,这不仅仅是 Powershell 的问题——我已经深入了解了它的真相。答案是“System32”对于 x86 进程来说是“虚拟的”——您正在查找的文件夹实际上是“%WINDIR%\SysWOW64”,并且那里没有“OpenSSH”。请参阅 https://docs.microsoft.com/en-us/windows/win32/winprog64/file-system-redirector (2认同)