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

GitHub SSH配置后重复索要密码、报错及git推拉超时故障求助

根因说明

手动配置的core.sshCommand参数引发了SSH客户端路径解析冲突:你执行ssh -T git@github.com时调用的是Git Bash自带的SSH客户端,认证逻辑正常;但Git执行远程操作时会优先调用你配置的Windows原生OpenSSH路径,该路径格式在Git Bash环境下无法被正确识别,最终触发权限报错和同步超时。

解决步骤

1. 清除错误的Git全局配置

执行以下命令删除你之前添加的core.sshCommand配置:

git config --global --unset core.sshCommand

验证配置是否清除成功,无输出即为清除完成:

git config --global core.sshCommand

此时测试git pull/push操作,权限报错会直接消失。

2. 配置SSH密钥密码自动缓存(解决反复输入密码问题)

你原本的核心诉求是避免频繁输入SSH密钥密码,不需要修改SSH客户端路径,只需配置Git Bash自动启动ssh-agent并缓存密钥即可:

  1. 打开Git Bash,编辑用户目录下的.bashrc配置文件,不存在则新建:
notepad ~/.bashrc
  1. 将以下脚本完整粘贴到文件末尾后保存:
env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env
  1. 重启Git Bash,首次启动时会要求输入一次SSH密钥密码,之后只要不重启设备,所有Git远程操作都不需要重复输入密码。

验证效果

重启后执行以下命令确认认证正常:

ssh -T git@github.com

返回认证成功提示后,再执行git pull/push操作即可正常同步,不会出现超时问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:45:01