Ubuntu终端Git每次需输凭据问题求助(VS Code正常)
解决Ubuntu终端Git每次交互需输入凭据的问题
1. 验证SSH连接有效性
先测试本地与GitHub的SSH连通性,在终端执行:
ssh -T git@github.com
返回Hi <你的GitHub用户名>! You've successfully authenticated, but GitHub does not provide shell access.说明SSH验证正常;若报错,按后续步骤排查。
2. 检查远程仓库URL格式
进入目标Git仓库目录,执行:
git remote -v
确认origin的URL是SSH格式(git@github.com:<用户名>/<仓库名>.git),而非HTTPS格式。如果是HTTPS,重新设置SSH远程地址:
git remote set-url origin git@github.com:<你的用户名>/<你的仓库名>.git
3. 确认SSH公钥已添加到GitHub账户
- 查看本地SSH公钥内容:
cat ~/.ssh/id_rsa.pub - 复制输出的全部内容,登录GitHub后进入 Settings > SSH and GPG keys,点击New SSH key,粘贴公钥内容并保存。
4. 将SSH密钥加载到SSH Agent
Ubuntu终端可能未自动加载密钥,执行以下命令添加:
ssh-add ~/.ssh/id_rsa
若密钥设置了密码,输入一次后,后续交互无需重复输入(重启系统后需重新执行,可配置开机自动加载)。
5. 修复SSH目录及文件权限
错误权限会导致SSH验证失败,执行以下命令修正:
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub chmod 644 ~/.ssh/known_hosts
6. 明确凭据缓存的适用场景
credential.helper仅对HTTPS格式的远程仓库生效,切换到SSH连接后,该配置不再起作用,无需依赖它。
内容的提问来源于stack exchange,提问作者Helena Rodríguez
相关产品推荐
相关产品推荐

