乐闻世界logo
搜索文章和话题
Git 的认证方式以及Git如何缓存凭证

Git 的认证方式以及Git如何缓存凭证

乐闻的头像
乐闻

2026年01月20日 11:46· 阅读 55

一、什么是 Git 凭证缓存?

Git 在通过 HTTPS 访问远程仓库时,需要输入用户名和密码。为了避免频繁输入,Git 提供了多种凭证缓存方式,提升开发效率。


二、git credential.helper cache 的使用

  • 作用:临时将你的凭证(如用户名和密码或 Token)缓存到本地内存,短时间内无需重复输入。
  • 配置命令
bash
git config --global credential.helper cache
  • 默认缓存时间:15 分钟(900 秒)。
  • 自定义缓存时间
bash
git config --global credential.helper 'cache --timeout=3600'

上例为缓存 1 小时。

  • 注意事项:仅在本地内存缓存,重启电脑或超时后需重新输入。适合临时开发环境,不建议生产环境长期使用。

三、实现永久缓存的方式

1. credential.helper store
  • 作用:明文保存凭证到 ~/.git-credentials,永久有效。
  • 配置命令
bash
git config --global credential.helper store
  • 安全性:明文保存,存在泄露风险,仅适合个人开发环境。
2. 操作系统密钥链(推荐、安全)
  • Windows
bash
git config --global credential.helper manager-core
  • macOS
bash
git config --global credential.helper osxkeychain
  • Linux: 可用 libsecret 等集成。
  • 优点:凭证安全地存储在操作系统密钥管理器中,既能永久保存,也更安全。

四、GitHub 认证变更与个人访问令牌(PAT)

  • GitHub 已禁用密码认证,必须使用个人访问令牌(PAT)。

  • 生成方式

    1. 进入 GitHub 设置 → Developer settings → Personal access tokens
    2. 生成新令牌,选择合适权限(如 repo)。
    3. 复制令牌,保存好(只显示一次)。
  • 使用方式

    • 用户名:你的 GitHub 用户名
    • 密码:你的个人访问令牌
  • 令牌粘贴技巧

    • Windows:Ctrl + Shift + V 或鼠标右键
    • Mac:Command + V
    • Linux:Ctrl + Shift + V
    • 输入密码时终端不显示字符,粘贴后直接回车即可。

五、使用 SSH 认证(推荐)

优点:安全、免输入、适合频繁操作

配置步骤

  1. 生成密钥
bash
ssh-keygen -t rsa -b 4096 -C "你的邮箱"
  • 若卡住,尝试直接回车、换终端、指定文件名 -f ~/.ssh/id_rsa

  • 添加公钥到 GitHub

    • 复制 ~/.ssh/id_rsa.pub 内容,添加到 GitHub → Settings → SSH and GPG keys。
  • 测试连接

bash
ssh -T git@github.com
  1. 使用 SSH 地址操作仓库
bash
git clone git@github.com:用户名/仓库名.git

或修改远程地址:

bash
git remote set-url origin git@github.com:用户名/仓库名.git

六、常见认证错误及解决方法

错误信息原因及解决方法
Password authentication is not supported用 PAT 替代密码
Write access to repository not granted没有写权限,请 Fork 或申请协作权限
令牌无法粘贴到终端换快捷键、用记事本中转、直接手动输入
ssh-keygen 卡住换终端、直接回车、指定文件名、检查权限

七、凭证缓存方式对比表

方式是否永久安全性适用场景
cache临时开发环境
store个人环境
manager/osxkeychain推荐,通用
SSH推荐,通用

八、总结建议

  • 临时使用可选 cache,长期建议用 store 或操作系统密钥链,推荐 SSH 认证
  • GitHub 操作请用个人访问令牌(PAT),不要再用密码。
  • 遇到权限或认证问题,优先检查凭证和远程仓库地址。

标签: