接下来的步骤提示
1. 保存密钥文件的路径(按回车使用默认)
text
Enter file in which to save the key (/root/.ssh/id_ed25519):
建议:直接按回车使用默认路径
2. 设置密钥密码(可选)
text
Enter passphrase (empty for no passphrase):
建议:
为了完全免密推送,直接按回车(不设置密码)
如果对安全性要求很高,可以设置一个密码(但每次推送仍需输入此密码)
3. 确认密码(如果上步设置了密码)
text
Enter same passphrase again:
直接按回车(如果上步没设置密码)
生成成功后的操作
生成完成后,您会看到类似这样的信息:
Your identification has been saved in /root/.ssh/id_ed25519
Your public key has been saved in /root/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx feimao5787@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
| ... |
| . . . |
| . . . . |
| . . . . . |
| S . . . .|
| . . . . .o|
| . . . . .o.|
| . . . . .o..|
| . . . .Eo+.|
+----[SHA256]-----+
验证 SSH 连接
添加公钥到 GitHub 后,测试连接:
bash
ssh -T git@github.com
如果成功,您会看到:
text
Hi feimao5787! You've successfully authenticated, but GitHub does not provide shell access.
现在请继续完成密钥生成过程,然后告诉我您进行到哪一步了!
这是正常的SSH安全验证!GitHub的服务器指纹您第一次连接,所以系统要求您确认。
正确的操作
输入 yes 然后按回车:
bash
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
验证指纹
您看到的指纹 SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU 是 正确的GitHub ED25519密钥指纹。
您可以在 GitHub官方文档 中验证这个指纹:
text
SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU (ED25519)
完全匹配!所以可以安全地输入 yes。
后续步骤
输入 yes 后,您应该会看到:
text
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Hi feimao5787! You've successfully authenticated, but GitHub does not provide shell access.
这表示SSH连接成功!
最后一步:切换远程仓库协议
现在将您的仓库从HTTPS切换到SSH:
bash
# 检查当前远程地址
git remote -v
# 切换到SSH(使用您的实际用户名和仓库名)
git remote set-url origin git@github.com:feimao5787/maccmsrust.git
# 再次验证远程地址
git remote -v
现在尝试推送,应该就不需要用户名和密码了:
bash
git push origin main
请先输入 yes 完成SSH连接验证,然后告诉我结果!
切换到 SSH 协议
执行以下命令:
bash
# 切换到 SSH 协议
git remote set-url origin git@github.com:feimao5787/maccmsrust.git
# 验证是否切换成功
git remote -v
切换成功后,您应该看到:
text
origin git@github.com:feimao5787/maccmsrust.git (fetch)
origin git@github.com:feimao5787/maccmsrust.git (push)
测试推送
现在测试一下是否还需要密码:
bash
git push origin main
如果还有问题,检查 SSH 代理
如果仍然需要密码,可能需要启动 SSH 代理:
bash
# 启动 SSH 代理
eval "$(ssh-agent -s)"
# 添加您的私钥到代理
ssh-add ~/.ssh/id_ed25519
验证 SSH 连接(确保之前输入了 yes)
bash
ssh -T git@github.com
应该显示:
text
Hi feimao5787! You've successfully authenticated, but GitHub does not provide shell access.
总结步骤
切换远程协议:git remote set-url origin git@github.com:feimao5787/maccmsrust.git
验证切换:git remote -v
测试推送:git push origin main
请先执行切换命令,然后测试推送是否还需要密码!