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并缓存密钥即可:
- 打开Git Bash,编辑用户目录下的
.bashrc配置文件,不存在则新建:
notepad ~/.bashrc
- 将以下脚本完整粘贴到文件末尾后保存:
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
- 重启Git Bash,首次启动时会要求输入一次SSH密钥密码,之后只要不重启设备,所有Git远程操作都不需要重复输入密码。
验证效果
重启后执行以下命令确认认证正常:
ssh -T git@github.com
返回认证成功提示后,再执行git pull/push操作即可正常同步,不会出现超时问题。
内容的提问来源于stack exchange,提问作者Faziki
相关产品推荐
相关产品推荐

