GitHub配置密钥

1.生成SSH密钥

1)检查 SSH 密钥是否存在

首先,确认是否已经在本地系统中生成了 SSH 密钥对。可以通过以下命令检查:

复制代码
ls -al ~/.ssh

在命令输出中,应该能看到类似 id_rsaid_rsa.pub 这样一对文件。如果这些文件不存在,表示你还没有创建 SSH 密钥对。

2)密钥不存在时

打开终端并输入以下命令(-C 后是你GitHub的邮箱地址):

Windows下请在:Git Bash下操作

复制代码
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

这个命令会生成一个 RSA 类型的 SSH 密钥对,长度为 4096 位,并将你的电子邮件作为注释。命令运行之后,你会被提示选择存储路径,可以按 Enter 直接使用默认路径,即 ~/.ssh/id_rsa。接着系统会提示你输入一个密码短语,这个短语可以为空,但为了安全性考虑,最好设定一个。

# 按 Enter 保存密钥到默认路径 (/home/username/.ssh/id_rsa)。

# 与Linux类似,Windows ssh保存使用默认路径(C:\Users\YourUsername\.ssh\id_rsa)。

macOS的默认路径(/Users/username/.ssh/id_rsa)

确认保存路径及设置密码

系统会提示你确认文件保存路径,按 Enter 使用默认路径。

然后会提示你输入密码(可以留空),输入完成后生成两个文件:
id_rsa: 私钥
id_rsa.pub: 公钥

2.获取公钥并复制(准备粘贴到Github)

使用以下命令查看公钥内容:

复制代码
cat ~/.ssh/id_rsa.pub

复制输出的内容,这是需要添加到GitHub上的公钥。

3.在GitHub中添加SSH密钥

登录GitHub,在右上角点击头像,进入 Settings=> Access => SSH and GPG keys 中点击 New SSH key

输入密钥名称(例如"SSH_KEY"),在 Key 中粘贴刚才复制的公钥 ,点击 Add SSH key

4. 检查 SSH 配置文件(选填)

有时候,如果配置了多个 SSH 密钥,Git 可能不知道应该使用哪一个。此时,我们可以编辑 SSH 配置文件 ~/.ssh/config 来进行指定。可以使用以下命令编辑该文件:

复制代码
nano ~/.ssh/config

然后在文件中添加以下内容:

复制代码
Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa

上述配置明确指定了在连接 GitHub 时使用的私钥文件 ~/.ssh/id_rsa,从而避免多密钥的混淆。比如说,一个开发者可能有两个不同的 GitHub 账户,各自配置了不同的密钥,这时候通过 config 文件明确指定密钥是非常重要的。

5. 检查本地私钥权限

如果私钥文件的权限过于宽泛,例如对所有用户开放读写,SSH 客户端将拒绝加载该密钥,因为它不安全。

确保本地私钥文件的权限是正确的,即只能由当前用户读取。可以使用以下命令修改权限:

复制代码
chmod 600 ~/.ssh/id_rsa

chmod 644 ~/.ssh/id_rsa.pub

这个命令将 id_rsa 文件的权限设为仅拥有者可读写(600),确保密钥的安全性。

如果文件权限过于宽松,SSH 客户端会拒绝使用该密钥,因而无法认证。

6. 确保 SSH Agent 正常运行

SSH Agent 是一个守护进程,用于管理私钥的解密。

可以通过以下命令查看是否有 Agent 正在运行:

复制代码
eval "$(ssh-agent -s)"

使用以下命令将密钥添加到 Agent 中:

复制代码
ssh-add ~/.ssh/id_rsa

成功添加之后,再次尝试克隆代码仓库。如果未启动 Agent,系统会提示错误消息,通过上述步骤启动并添加密钥之后,应该就可以正常克隆代码了。

7.测试连接

使用以下命令测试SSH连接:

复制代码
ssh -T git@github.com

如果成功,GitHub会返回类似于"Hi username! You've successfully authenticated"的消息。

再次查看

https://juejin.cn/post/7449552457295970358

相关推荐
LinXunFeng1 小时前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
DayDaydream6 小时前
7 天涨了 8000+ Star,Agent Reach 想给 AI 装上互联网眼睛
github
天衍四九2 天前
Git从0到实战(四):冲突解决与版本回退 —— 别怕,出错了也能救
github
大刚测试开发实战2 天前
如何内网穿透访问本地私有化部署的TestHub
前端·后端·github
uhakadotcom2 天前
在python 的 工程化架构中 ,什么是 薄包装器层?
后端·面试·github
Avan_菜菜3 天前
AI 能写代码了,为什么我反而开始要求它先写文档?
前端·github·ai编程
逛逛GitHub3 天前
这个爆红的 GitHub 项目让 token 直接省 60–95%。
github
iccb10133 天前
5年,一个程序员是如何把私有化在线客服系统做到第一名的
前端·后端·github
蝎子莱莱爱打怪3 天前
AI Agent 相关知识扫盲:16 个概念+11张图+38个开源项目推荐
人工智能·github·agent
用户317723070364 天前
Pydub:用 Python 处理音频,不写废话
github