1074 words
5 minutes
Git的ssh密钥配置

git用户全局配置:https://blog.csdn.net/bandaoyu/article/details/112968504

配置#

Terminal window
git config --global user.name "username"
git config --global user.email example@domain.com

验证#

Terminal window
git config user.name
git config user.email

git push
remote: [session-50418b87] Two-factor authentication (2FA) is enabled for your account. To use HTTPS-based password authentication, please use a personal access token instead of your password.
remote: For more details, visit https://help.gitee.com/account/two-factor-authentication.
fatal: unable to access 'https://gitee.com/user/repo/': The requested URL returned error: 403

你在 git push 时遇到的错误,是因为你的 Gitee 账户启用了双因素认证 (2FA) ,此时不能再使用账户密码进行 HTTPS 操作,需要改用更安全的认证方式。

你可以选择以下两种主流方案来解决这个问题。

🛠️ 解决方案对比#

解决方案优点缺点
① 使用个人访问令牌 (PAT)设置相对简单,无需生成密钥对;适合临时授权。需妥善保管令牌,因为它相当于密码; HTTPS 方式每次推送可能需输入凭证(可配置缓存)。
② 配置 SSH 密钥一次配置,长期免密使用;安全性更高。初始配置步骤稍多;需要生成并上传密钥对。

🔑 方法一:使用个人访问令牌 (Personal Access Token)#

这种方式用令牌代替密码,是启用双因素认证后推荐的 HTTPS 认证方式。

  1. 生成令牌

    • 登录你的 Gitee 账户,进入 设置
    • 找到并进入 安全设置 下的 个人访问令牌 页面。
    • 点击 生成新令牌
    • 为令牌起一个易于识别的名字(例如”我的电脑”),并设置合适的过期时间。
    • 根据需求勾选权限范围,至少需要勾选 repo (仓库权限)。
    • 生成后,立即复制并妥善保存令牌字符串,关闭页面后将无法再次查看。
  2. 使用令牌推送代码

    • 当你再次执行 git push 时,会弹出认证窗口。
    • 用户名:填写你的 Gitee 用户名。
    • 密码此处不再输入账户密码,而是粘贴刚才生成的个人访问令牌
  3. (可选)配置凭证缓存 为了避免每次推送都需输入令牌,可以让 Git 缓存你的凭证:

    Terminal window
    git config --global credential.helper store

    此后,在第一次输入用户名和令牌后,Git 会将其缓存,后续操作就不再需要重复输入了。

🔐 方法二:配置 SSH 密钥认证#

此方法通过生成一对非对称加密的密钥(公钥和私钥)来进行认证,更加安全便捷。

  1. 生成 SSH 密钥对 打开终端(如 Git Bash),执行以下命令。注意将 "your_email@example.com" 替换为你自己的邮箱,它仅是密钥的标识。

    Terminal window
    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

    生成过程中,连续按三次回车键使用默认选项即可(包括不设置密码,当然为了安全你也可以设置)。

  2. 添加公钥到 Gitee

    • 使用以下命令查看并复制生成的公钥内容:
    Terminal window
    cat ~/.ssh/id_rsa.pub
    TIP

    cmd无法使用这个命令,可以直接去打开文件复制内容。

    • 登录 Gitee,进入 设置 -> SSH 公钥
    • 将刚才复制的公钥内容粘贴到”公钥”填写框中,并为这个公钥起一个标题。
    • 点击”确定”。
  3. 测试连接 在终端中执行以下命令,测试 SSH 密钥是否配置成功:

    Terminal window
    ssh -T git@gitee.com

    如果看到类似 Welcome to Gitee.com, YourUsername! 的欢迎信息,说明配置成功。

  4. 修改远程仓库地址为 SSH 协议 这是关键的一步。你需要进入你的项目目录,将远程仓库的 URL 从 HTTPS 格式修改为 SSH 格式。

    • 查看当前远程地址:
    Terminal window
    git remote -v
    • 修改为 SSH 地址:
    Terminal window
    git remote set-url origin git@gitee.com:Pfolg/IconChanger.git

    (请将 Pfolg/IconChanger.git 替换为你自己的仓库路径)。

    • 修改完成后,再次尝试 git push,应该就可以成功推送了。

💡 如何选择?#

  • 如果你希望快速解决当前问题,并且不介意在推送时可能需要输入凭证,推荐使用个人访问令牌
  • 如果你追求长期的安全与便利,希望未来进行推送、拉取等操作时无需反复认证,那么配置 SSH 密钥是更好的选择。

如果在这个过程中遇到其他问题,或者想了解关于这两种认证方式的更多细节,随时可以再问我。

Git的ssh密钥配置
https://pfolg.top/posts/git的ssh密钥配置/
Author
Pfolg
Published at
2025-10-31
License
CC BY-NC-SA 4.0