“where ssh”返回多个位置

问题描述

当我在 gitbash 中运行 ssh-agent 时,我得到两个进程,一个有 25% 的 cpu,另一个是 0,并且 gitbash 挂起。如果我使用 git 客户端并与远程交互,我会以 12% 的 cpu 运行 ssh 进程并且客户端挂起。

如果我运行“where ssh”,我会得到以下信息:

C:\Program Files\Git\usr\bin\ssh.exe
C:\Windows\System32\OpenSSH\ssh.exe

查看其他类似问题,我想知道是否由于 ssh 的两个位置而导致两个进程之间出现竞争条件。

这些地点是如何管理的?我已尝试更改和删除我的 GIT_SSH 环境变量,但没有任何影响。

我运行的是 Windows 10 和 git 版本 2.30.1.windows.1

解决方法

我使用相同的 Git For Windows,当我从 gitbash 会话执行 ssh-agent 时,只得到一个进程 ssh-agent.exe

但是:我的 PATH 中没有 C:\Windows\System32\OpenSSH。

因此,首先检查在您重新定义(用于测试)%PATH% 的 CMD 中,问题是否仍然存在。
查看simplified PATH as shown here

,

@vonC 是正确的,从我的路径中删除 C:\Windows\System32\OpenSSH 解决了对“where”的多个响应的问题。但是我仍然有同样的问题,即 ssh-agent 会挂起。

终于尝试了经典的卸载 - 重新安装并且成功了。

  • 卸载 Git
  • 卸载 Fork Client(我使用的 git 客户端)
  • 卸载 OpenSSH(添加/删除程序 -> 可选功能)
  • 重新安装 Fork 客户端
  • 重新安装 OpenSSH