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

在PowerShell中使用带密码短语的SSH密钥操作Git时遇认证提示问题

解决PowerShell中Git命令反复提示SSH密钥密码短语的问题

我太懂这种明明配置好了ssh-agent却还是反复弹密码提示的烦躁了!既然你已经确认了agent启动、环境变量正确、GitHub连接测试通过,那咱们从几个容易被忽略的点入手排查:

  • 先确认ssh-agent真的加载了你的密钥
    别光看agent激活了,得实打实确认密钥在列表里。在PowerShell里跑一下ssh-add -l,看看输出里有没有你GitHub SSH密钥的指纹。要是没看到,手动执行ssh-add ~/.ssh/你的密钥文件名(比如ssh-add ~/.ssh/id_ed25519),加载完再试试Git命令,说不定就解决了。

  • 给Git指定明确的SSH密钥配置
    有时候Git会乱尝试不同的密钥,导致agent没匹配上。在~/.ssh目录下新建个config文件(没有就直接创建),写入以下内容:

    Host github.com
      IdentityFile ~/.ssh/你的密钥文件名
      IdentitiesOnly yes
    

    IdentitiesOnly yes这个配置很关键,它会强制Git只用你指定的这个密钥,不会瞎试其他的,避免和agent的密钥池混淆。

  • 排查Windows上的ssh-agent服务版本
    Windows有两套ssh-agent:OpenSSH官方服务和Git自带的。要是混用了就容易出问题。你可以重置一下服务:

    1. 先停掉当前agent:Stop-Service ssh-agent
    2. 设置成自动启动:Set-Service -Name ssh-agent -StartupType Automatic
    3. 重新启动:Start-Service ssh-agent
      之后重新加载密钥,再测试Git操作。
  • 让Git使用系统的OpenSSH客户端
    Git默认可能用自己打包的ssh.exe,和系统的agent不兼容。你可以把Git的SSH命令指向系统版本:

    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
    

    配置完后,Git就会调用系统的ssh,和你启动的agent完美配合了。

  • 延长ssh-agent的密码缓存时长
    要是缓存时间太短,过一会儿就又要输密码。你可以设置个长一点的缓存时间,比如一天:

    ssh-add -t 86400 ~/.ssh/你的密钥文件名
    

    86400是秒数,也就是24小时,这样一天内都不用重复输密码了。

内容的提问来源于stack exchange,提问作者Dennie de Lange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:58:13