git push 疑难解决:使用更稳定SSH密钥替代https连接GitHub并推送代码
·
git push 疑难解决:使用更稳定SSH密钥替代https连接GitHub并推送代码
在日常开发中,git push时经常会出现各种让人摸不着头绪的问题,尤其是使用代理时,本人通过结合各种资料的建议,饱受各种奇怪问题的折磨,发现使用SSH协议替代https连接GitHub能够防止大部分奇怪bug的产生,本文将详细记录从生成ED25519密钥对到成功推送代码到GitHub仓库的完整过程(以本人的仓库和实际过程为例)
一、生成ED25519密钥对
ED25519是一种现代的椭圆曲线加密算法,相比传统的RSA密钥,它在安全性和性能上都有优势。我们首先需要生成一对ED25519密钥(私钥和公钥)。
操作命令:(双引号中替换为自己实际的邮箱)
ssh-keygen -t ed25519 -C "m5201314202201@163.com"
过程解析:
- 执行命令后,系统会提示选择密钥保存路径,默认路径为
C:\Users\lenovo/.ssh/id_ed25519(Windows系统),直接按回车使用默认路径即可。 - 系统会自动创建
.ssh目录,用于存储密钥文件。 - 接下来会提示设置密钥密码(passphrase):
- 若希望每次使用密钥时都验证密码,可输入密码并确认。
- 若希望免密码使用,直接按两次回车跳过即可。
- 成功生成后,会显示密钥的指纹信息和随机艺术图案,同时提示私钥(
id_ed25519)和公钥(id_ed25519.pub)的保存路径。
二、将本地仓库关联到GitHub的SSH地址
生成密钥后,需要将本地Git仓库与GitHub远程仓库通过SSH协议关联,
打开github->setting->SSH and GPG Keys->New SSH key,
新建密钥后接着在git bash以下操作:
操作命令:(替换为自己仓库实际的名称)
git remote set-url origin git@github.com:1024freedom/Qt_radar.git
作用说明:
git remote set-url用于修改远程仓库的地址。git@github.com:1024freedom/Qt_radar.git是GitHub仓库的SSH地址
三、验证SSH连接是否成功
在推送代码前,建议先验证本地与GitHub的SSH连接是否正常,确保密钥配置正确。
操作命令:
ssh -T git@github.com
过程解析:
- 首次连接时,系统会提示无法确认
github.com的真实性,并显示其公钥指纹
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
- 输入
yes确认信任该主机,系统会将GitHub的公钥信息保存到~/.ssh/known_hosts文件中,后续连接无需再次验证。 - 若生成密钥时设置了密码,此时会提示输入密钥密码;若未设置,直接跳过。
- 成功连接后,会显示
Hi 1024freedom! You've successfully authenticated...提示,表明SSH密钥验证通过。
四、推送本地代码到GitHub仓库
验证连接成功后,即可将本地代码推送到GitHub远程仓库。
更多推荐
所有评论(0)