问题描述
当我在 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