You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何避免每次向GitHub/Gitea推送代码时重复输入私钥?

Git 免密推送 GitHub 配置方法

你可以通过两种主流方式实现免密推送,根据当前使用的协议选择即可:

一、HTTPS 协议下启用凭据缓存

如果当前仓库用的是 HTTPS 地址,直接配置 Git 凭据缓存就能自动保存用户名密码:

  • 临时缓存(默认15分钟):
    git config --global credential.helper cache
    
  • 长期缓存(比如设置7天有效期,单位为秒):
    git config --global credential.helper 'cache --timeout=604800'
    
  • 永久缓存(依托系统凭据管理器,更安全):
    • Mac 系统:
      git config --global credential.helper osxkeychain
      
    • Windows 系统:
      git config --global credential.helper manager-core
      
    • Linux 系统(凭据会明文存在本地文件,需手动设置权限):
      git config --global credential.helper store
      chmod 600 ~/.git-credentials
      

二、切换到 SSH 协议(推荐,安全且长期有效)

如果不想依赖 HTTPS 的凭据缓存,改用 SSH 密钥认证是更稳妥的方案:

  1. 生成 SSH 密钥对(若已有则跳过):
    ssh-keygen -t ed25519 -C "你的GitHub注册邮箱"
    
    按回车默认生成路径,可选设置密钥密码(增强安全性,后续可通过 ssh-agent 缓存)。
  2. 将公钥添加到 GitHub:
    执行命令查看公钥内容:
    cat ~/.ssh/id_ed25519.pub
    
    复制输出的全部文本,登录 GitHub 后进入「Settings」→「SSH and GPG keys」→「New SSH key」,粘贴内容并保存。
  3. 切换仓库远程地址为 SSH 格式:
    先查看当前远程地址:
    git remote -v
    
    若显示为 HTTPS 地址,执行以下命令替换(替换成你的用户名和仓库名):
    git remote set-url origin git@github.com:你的GitHub用户名/仓库名.git
    

补充:SSH 密钥密码缓存(若设置了密钥密码)

如果生成 SSH 密钥时设置了密码,每次推送仍需输入的话,可通过 ssh-agent 缓存:

# 启动 ssh-agent
eval "$(ssh-agent -s)"
# 添加密钥到 agent
ssh-add ~/.ssh/id_ed25519

内容的提问来源于stack exchange,提问作者Marcinnn123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 18:02:48