使用Git Credential Manager替代SSH遇Permission denied错误,如何配置?
用Git Credential Manager替代SSH的配置方案
你碰到的Permission denied (publickey)问题,本质是当前仓库用的是SSH远程地址,Git会优先走SSH认证流程,根本没触发Git Credential Manager(GCM)的逻辑。下面是具体解决步骤:
1. 确认GCM已正确配置到Git
打开终端,执行命令让Git全局启用GCM:
git config --global credential.helper manager-core
(Windows系统安装GCM后一般会自动配置,手动跑一遍更稳妥;macOS/Linux用户如果上面的命令不生效,换成git config --global credential.helper manager)
验证配置是否生效:
git config --global --get credential.helper
输出里有manager或manager-core就说明配置没问题。
2. 把旧仓库的SSH远程地址改成HTTPS
旧仓库一直用SSH地址,所以Git默认走SSH认证,必须切换成HTTPS地址才能触发GCM:
- 先查看当前的远程地址:
git remote -v
- 替换成HTTPS格式的地址(以GitHub为例,格式是
https://github.com/你的用户名/你的仓库.git):
git remote set-url origin https://github.com/你的用户名/你的仓库.git
再执行一遍git remote -v确认地址已经切换。
3. 新仓库克隆时选HTTPS地址
克隆新项目时,别复制SSH格式的地址,直接选HTTPS的链接,比如:
git clone https://github.com/目标用户名/目标仓库.git
这样执行克隆时,Git会自动弹出GCM的授权窗口,跟着提示完成登录就行。
4. 测试授权是否正常
改完旧仓库地址后,执行一次git pull或者git push,这时应该会弹出GCM的授权界面(不同平台可能不一样,比如GitHub会跳网页授权,或者让你输个人访问令牌)。授权成功后,GCM会自动保存凭证,后续操作不用再重复验证。
提示:如果你的代码平台(比如GitHub)开了双因素认证(2FA),别用密码登录,跟着GCM的提示生成个人访问令牌(PAT)或者走网页授权流程,密码在开2FA后没法用于Git认证。
内容的提问来源于stack exchange,提问作者ZYinMD
相关产品推荐
相关产品推荐

