You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么ssh连接无需输入密钥口令而git操作时要求输入?

问题根因

你遇到的问题核心是Windows环境下存在两套独立的SSH客户端:
PowerShell默认调用系统内置的OpenSSH客户端,你已将密钥添加到对应ssh-agent的缓存中,所以执行ssh -T git@github.com不需要输入口令;而你安装的Git默认使用自带的MinGW版本SSH客户端,对应独立的ssh-agent进程,没有你缓存的密钥信息,因此执行Git操作时会要求输入密钥口令。

解决步骤

第一步 验证原因

在PowerShell中依次执行以下命令:

  1. 查看系统SSH路径:
    where.exe ssh
    正常输出会包含C:\Windows\System32\OpenSSH\ssh.exe
  2. 查看Git当前使用的SSH配置:
    git config --get core.sshCommand
    如果输出为空,说明Git默认使用自带的SSH客户端,和系统SSH不属于同一套环境。

第二步 执行修复

推荐使用更省心的方案:让Git直接调用系统OpenSSH客户端,执行以下全局配置命令即可:
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

配置完成后再执行git fetch测试,就会复用系统ssh-agent中已经缓存的密钥,不需要重复输入口令。

可选验证

如果配置后仍有问题,执行ssh-add -l确认你的GitHub密钥已成功加载到系统ssh-agent中,输出中存在对应密钥指纹即为正常。

内容的提问来源于stack exchange,提问作者Kit Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 00:57:03