星尘 stardust
1074 words
5 minutes
Git的ssh密钥配置
git用户全局配置:https://blog.csdn.net/bandaoyu/article/details/112968504
配置
git config --global user.name "username"
git config --global user.email example@domain.com验证
git config user.name
git config user.emailgit pushremote: [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 认证方式。
-
生成令牌
- 登录你的 Gitee 账户,进入 设置 。
- 找到并进入 安全设置 下的 个人访问令牌 页面。
- 点击 生成新令牌 。
- 为令牌起一个易于识别的名字(例如”我的电脑”),并设置合适的过期时间。
- 根据需求勾选权限范围,至少需要勾选
repo(仓库权限)。 - 生成后,立即复制并妥善保存令牌字符串,关闭页面后将无法再次查看。
-
使用令牌推送代码
- 当你再次执行
git push时,会弹出认证窗口。 - 用户名:填写你的 Gitee 用户名。
- 密码:此处不再输入账户密码,而是粘贴刚才生成的个人访问令牌。
- 当你再次执行
-
(可选)配置凭证缓存 为了避免每次推送都需输入令牌,可以让 Git 缓存你的凭证:
Terminal window git config --global credential.helper store此后,在第一次输入用户名和令牌后,Git 会将其缓存,后续操作就不再需要重复输入了。
🔐 方法二:配置 SSH 密钥认证
此方法通过生成一对非对称加密的密钥(公钥和私钥)来进行认证,更加安全便捷。
-
生成 SSH 密钥对 打开终端(如 Git Bash),执行以下命令。注意将
"your_email@example.com"替换为你自己的邮箱,它仅是密钥的标识。Terminal window ssh-keygen -t rsa -b 4096 -C "your_email@example.com"生成过程中,连续按三次回车键使用默认选项即可(包括不设置密码,当然为了安全你也可以设置)。
-
添加公钥到 Gitee
- 使用以下命令查看并复制生成的公钥内容:
Terminal window cat ~/.ssh/id_rsa.pubTIP
cmd无法使用这个命令,可以直接去打开文件复制内容。
- 登录 Gitee,进入 设置 -> SSH 公钥 。
- 将刚才复制的公钥内容粘贴到”公钥”填写框中,并为这个公钥起一个标题。
- 点击”确定”。
-
测试连接 在终端中执行以下命令,测试 SSH 密钥是否配置成功:
Terminal window ssh -T git@gitee.com如果看到类似
Welcome to Gitee.com, YourUsername!的欢迎信息,说明配置成功。 -
修改远程仓库地址为 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密钥配置/