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

相关推荐
A5资源网2 小时前
cloudflare配合github搭建免费开源影视LibreTV一个独享视频网站 详细教程
github
mortimer2 小时前
从零到一:构建一个 Chatterbox-TTS API 服务
开源·github·ai编程
真智AI3 小时前
利用 Claude Opus 4 自动化 GitHub 工作流:从安装到实战详解
运维·自动化·github
寻月隐君6 小时前
Rust 网络编程实战:用 Tokio 手写一个迷你 TCP 反向代理 (minginx)
后端·rust·github
喜欢吃豆7 小时前
快速手搓一个MCP服务指南(九): FastMCP 服务器组合技术:构建模块化AI应用的终极方案
服务器·人工智能·python·深度学习·大模型·github·fastmcp
油泼辣子多加17 小时前
2025年06月30日Github流行趋势
github
ai小鬼头17 小时前
AIStarter如何快速部署Stable Diffusion?**新手也能轻松上手的AI绘图
前端·后端·github
寻月隐君1 天前
Rust 异步编程实践:从 Tokio 基础到阻塞任务处理模式
后端·rust·github
bingGO549911 天前
github 集成CICD自动化部署
github
超龄超能程序猿1 天前
Bitvisse SSH Client 安装配置文档
运维·ssh·github