Git Credential Manager每次推送/拉取仍提示密码,求正确配置方案
SSH连接自建Git仓库仍需输入密码的解决配置方案
核心原因
Git Credential Manager(GCM)仅负责HTTPS协议的凭证管理,SSH连接的身份验证依赖SSH密钥对,和GCM完全无关。你当前全局配置里的GCM设置对SSH连接没有作用,所以每次push/pull操作仍会要求输入密码。
解决步骤
1. 生成SSH密钥对(未生成过的话)
打开终端执行以下命令,一路回车使用默认配置即可:
ssh-keygen -t ed25519 -C "your_email@example.com"
生成的密钥对默认存放路径:
- 私钥:
~/.ssh/id_ed25519 - 公钥:
~/.ssh/id_ed25519.pub
2. 将公钥部署到远程Git服务器
把本地公钥文件~/.ssh/id_ed25519.pub的内容复制,粘贴到远程服务器对应用户的~/.ssh/authorized_keys文件中。完成后在远程服务器执行以下命令确保权限正确:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
3. 配置SSH代理(避免重复输入密钥密码)
如果你的SSH密钥设置了密码,每次使用仍会弹窗验证,可通过SSH代理缓存密钥:
# 启动SSH代理 eval "$(ssh-agent -s)" # 将密钥添加到代理 ssh-add ~/.ssh/id_ed25519
若想终端启动时自动加载,可把上述命令添加到你的shell配置文件(如~/.bashrc、~/.zshrc)。
4. 验证SSH连接有效性
执行以下命令测试免密登录远程服务器:
ssh username@remoteip
若能直接登录,说明SSH配置生效,后续Git的push/pull操作将不再提示输入密码。
5. 清理无关的GCM配置(可选)
由于GCM对SSH连接无作用,可移除全局配置里的GCM设置避免混淆:
git config --global --unset credential.helper
内容的提问来源于stack exchange,提问作者Matthew Conradie
相关产品推荐
相关产品推荐

