Git推送时SSH passphrase弹窗循环请求问题求助
解决Git Push时Passphrase弹窗循环问题
方法1:重置Git凭据助手
先查看当前Git用的凭据管理工具:
git config --global credential.helper
如果输出是manager-core(Windows)、osxkeychain(Mac)这类系统级工具,先重置为本地存储:
git config --global --unset credential.helper git config --global credential.helper store
store会把凭据存在本地明文文件里,在意安全的话之后可以换成cache,它会缓存凭据15分钟。
方法2:重启SSH代理
如果是SSH密钥的验证冲突,先杀掉现有代理再重新启动:
- Windows:
打开命令提示符执行:
taskkill /f /im ssh-agent.exe eval `ssh-agent` ssh-add ~/.ssh/id_rsa # 替换成你的实际密钥文件名
- Mac/Linux:
killall ssh-agent eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa
执行ssh-add时输入一次正确的passphrase,之后再push就不会反复弹窗了。
方法3:修正密钥文件权限(Linux/Mac)
如果密钥文件权限太宽松,SSH会拒绝正常使用,导致反复验证:
chmod 600 ~/.ssh/id_rsa chmod 700 ~/.ssh
把密钥文件设为仅自己可读写,.ssh目录设为仅自己可访问。
方法4:清除系统存储的旧凭据
有些系统会强制用自带的凭据管理器覆盖Git设置,直接删除旧的Git相关凭据即可:
- Windows:打开「控制面板」→「凭据管理器」→「Windows凭据」,找到对应Git仓库的条目删除。
- Mac:打开「钥匙串访问」,搜索Git相关条目后删除,之后重新输入passphrase。
内容的提问来源于stack exchange,提问作者Gonçalo Bernardo
相关产品推荐
相关产品推荐

