github 添加 ssh key具体方法(github给项目添加成员)
GitHub 添加 SSH KEY 和 GPG key 操作手册
一、前言
在使用 GitHub 进行开发协作时,为了确保连接的安全性与提交代码的可验证性,需要配置 SSH KEY 和 GPG key。本手册将详细介绍在 Windows 系统下完成这两项配置的操作流程。
前置条件,电脑安装GIT-2.47版本,https://git-scm.com/downloads/win
gpg4 win 软件下载并安装:https://www.gnupg.org/download/
二、添加 SSH KEY 操作步骤
(一)生成 SSH 密钥
- 打开 Git Bash(如果使用 Windows 命令提示符,部分命令会有所不同,后续会提及)。
- 在终端中输入以下命令:
- 收起
- bash
- ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
这里的 your_email@example.com 替换为你自己的 GitHub 注册邮箱。- 在生成过程中:当提示 “Enter file in which to save the key” 时,直接按 Enter 使用默认位置。当提示输入密码时,可选择设置密码增强安全性,也可直接按 Enter 留空。
具体操作步骤如下:
- 生成 SSH 密钥
bash
CopyInsert in Terminal
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
在生成过程中:
- 当提示 "Enter file in which to save the key" 时,可以直接按 Enter 使用默认位置
- 当提示输入密码时,可以选择设置密码或直接按 Enter 留空
- 查看公钥
bash
CopyInsert in Terminal
cat ~/.ssh/id_rsa.pub
- 将公钥添加到 GitHub
- 复制上面命令输出的完整公钥
- 打开 GitHub 网站
- 进入 Settings > SSH and GPG keys
- 点击 "New SSH key"
- 粘贴你的公钥
- 测试 SSH 连接
bash
CopyInsert in Terminal
ssh -T git@github.com
需要我详细指导你完成这些步骤吗?
这是因为你使用的是 Windows 命令提示符,cat 命令不是 Windows 的默认命令。在 Windows 上,你可以使用以下方法查看 SSH 公钥:
- 对于 Git Bash:
bash
CopyInsert in Terminal
cat ~/.ssh/id_rsa.pub
- 对于 Windows 命令提示符(CMD):
Code
CopyInsert
type %USERPROFILE%\.ssh\id_rsa.pub
- 如果你还没有生成 SSH 密钥,可以使用 Git Bash 或 Windows 的 SSH 客户端生成:
bash
CopyInsert in Terminal
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
生成密钥后,建议:
- 复制生成的公钥
- 打开 GitHub 网站
- 进入 Settings > SSH and GPG keys
- 点击 "New SSH key"
- 粘贴你的公钥
你希望我帮你生成 SSH 密钥并指导你如何在 GitHub 上设置吗?
(二)查看公钥
- 使用 Git Bash:在终端中输入
- 收起
- bash
- cat ~/.ssh/id_rsa.pub
- 使用 Windows 命令提示符(CMD):输入
- 收起
- plaintext
- type %USERPROFILE%\.ssh\id_rsa.pub
(三)将公钥添加到 GitHub
- 复制上面命令输出的完整公钥(从 ssh-rsa 开头到最后一行)。
- 打开 GitHub 网站。
- 点击右上角头像,选择 “Settings”。
- 在左侧菜单中点击 “SSH and GPG keys”。
- 点击 “New SSH key”。
- 在 “Title” 栏可填写一个标识此密钥用途的名称(如个人电脑名称等),在 “Key” 栏粘贴你的公钥。
- 点击 “Add SSH key”。
(四)测试 SSH 连接
在终端中输入:
收起
bash
ssh -T git@github.com
若看到类似 “Hi [你的 GitHub 用户名]! You've successfully authenticated, but GitHub does not provide shell access.” 的信息,则表示 SSH 连接配置成功。
三、添加 GPG key 操作步骤
(一)生成 GPG 密钥
- 打开 Git Bash。
- 在终端中输入:
- 收起
- bash
- gpg --full-generate-key
- 按照提示操作:选择 (1) RSA and RSA。输入 4096 作为密钥长度。选择密钥有效期,建议选择 0,即永不过期。输入真实姓名,如示例中的 [自定义姓名]。输入电子邮件,替换为你自己的 GitHub 注册邮箱。可以不添加注释。设置一个强密码(建议使用复杂密码)。
(二)导出公钥
在终端中输入:
收起
bash
gpg --armor --export [你的邮箱] > github_gpg_key.asc
(三)配置 Git
在终端中输入:
收起
bash
git config --global user.name "[自定义用户名]"
git config --global user.email "[你的邮箱]"
git config --global user.signingkey [根据实际生成密钥填写,可通过对应命令查看]
git config --global commit.gpgsign true
(四)在测试仓库中尝试
- 在终端依次输入:
- 收起
- bash
- mkdir -p ~/test_gpg_repo cd ~/test_gpg_repo git init touch README.md git add README.md git commit -S -m "Test GPG signature"
- 验证配置:检查 Git 全局配置:在终端输入 git config --global -l。查看 GPG 密钥:在终端输入 gpg --list-secret-keys。
(五)在 GitHub 添加 GPG 公钥
- 导出公钥(若之前未操作):在终端输入 gpg --armor --export [你的邮箱]。
- 复制完整的公钥输出(从 -----BEGIN PGP PUBLIC KEY BLOCK----- 到 -----END PGP PUBLIC KEY BLOCK-----)。
- 打开 GitHub。
- 点击右上角头像 > “Settings”。
- 左侧菜单选择 “SSH and GPG keys”。
- 点击 “New GPG key”。
- 在 “Key” 栏粘贴复制的公钥。
- 点击 “Add GPG key”。
由于在生成过程第一次不成功,重新来一次,步骤如下:
我们将重新生成 GPG 密钥:
- 删除现有的 GPG 密钥
bash
CopyInsert
gpg --delete-secret-keys 6E4D314F82F3C10C4FCCABD0C27D217F5CF6F614 gpg --delete-keys 6E4D314F82F3C10C4FCCABD0C27D217F5CF6F614
- 生成新的 GPG 密钥
bash
CopyInsert in Terminal
gpg --full-generate-key
按照提示:
- 选择 (1) RSA and RSA
- 密钥长度 4096
- 选择密钥有效期(可以选择永不过期)
- 输入真实姓名:gXX
- 输入电子邮件:xx@gmail.com
- 可以添加注释(可选)
- 设置强密码
选1即可,
- 验证密钥
bash
CopyInsert
gpg --list-secret-keys gpg --list-keys
- 导出公钥
bash
CopyInsert in Terminal
gpg --armor --export xxx@gmail.com > github_gpg_key.asc
- 配置 Git
bash
CopyInsert
git config --global user.name "gxx" git config --global user.email "xx@gmail.com" git config --global user.signingkey $(gpg --list-secret-keys --keyid-format LONG | grep sec | awk '{print $2}' | cut -d/ -f2) git config --global commit.gpgsign true
- 在测试仓库中尝试
bash
CopyInsert
mkdir -p ~/test_gpg_repo cd ~/test_gpg_repo git init touch README.md git add README.md git commit -S -m "Test GPG signature"
需要我帮你逐步执行这些步骤吗?
好的,我们将逐步执行生成 GPG 密钥的过程。以下是详细步骤:
- 生成 GPG 密钥
bash
CopyInsert in Terminal
gpg --full-generate-key
请按照以下提示操作:
- 选择 (1) RSA and RSA
- 输入 4096 作为密钥长度
- 选择密钥有效期(建议选择 0,即永不过期)
- 输入 "gunkey0103" 作为真实姓名
- 输入 "cxl0105@gmail.com" 作为电子邮件
- 可以不添加注释
- 设置一个强密码(建议使用复杂密码)
完成后,请告诉我生成的密钥信息。
很好,密钥已成功生成。现在我们将完成后续配置:
- 导出公钥
bash
CopyInsert in Terminal
gpg --armor --export xx@gmail.com > github_gpg_key.asc
- 配置 Git
bash
CopyInsert
git config --global user.name "xx" git config --global user.email "cxx@gmail.com" git config --global user.signingkey 24E7E009E557CC56F8231E6765214D9B46F72B6 git config --global commit.gpgsign true
- 在测试仓库中尝试
bash
CopyInsert
mkdir -p ~/test_gpg_repo cd ~/test_gpg_repo git init touch README.md git add README.md git commit -S -m "Test GPG signature"
- 验证配置
bash
CopyInsert
git config --global -l gpg --list-secret-keys
需要我帮你逐步执行这些步骤吗?
Me
已完成所有步骤
太好了!现在让我们验证 GPG 和 Git 的配置:
- 检查 Git 全局配置
bash
CopyInsert in Terminal
git config --global -l
- 查看 GPG 密钥
bash
CopyInsert in Terminal
gpg --list-secret-keys
- 在 GitHub 添加 GPG 公钥
- 导出公钥
bash
CopyInsert in Terminal
gpg --armor --export cxl0105@gmail.com
- 复制输出的完整公钥
- 打开 GitHub
- Settings > SSH and GPG keys
- 点击 "New GPG key"
- 粘贴公钥
- 测试 Git 提交签名
bash
CopyInsert
cd ~/test_gpg_repo git log --show-signature
你是否需要我帮你完成这些步骤?特别是在 GitHub 上添加 GPG 公钥?
非常好!从输出来看,你的 GPG 签名已经成功配置:
- 提交使用了 RSA 密钥 24E7E009E557CC56F8231E6765214D9B46CF72B6
- 签名验证结果为 "Good signature"
- 签名者信息与 Git 配置一致
接下来的步骤是在 GitHub 上添加 GPG 公钥:
- 导出公钥
bash
CopyInsert in Terminal
gpg --armor --export cxl0105@gmail.com
- 复制完整的公钥输出(从 -----BEGIN PGP PUBLIC KEY BLOCK----- 到 -----END PGP PUBLIC KEY BLOCK-----)
- 在 GitHub 上添加:
- 打开 GitHub
- 点击右上角头像 > Settings
- 左侧菜单选择 "SSH and GPG keys"
- 点击 "New GPG key"
- 粘贴复制的公钥
- 点击 "Add GPG key"
需要我帮你详细指导如何在 GitHub 上添加公钥吗?
已经加入到GPG KEY
太棒了!现在你已经完成了 GPG 密钥的全部配置:
- 本地 Git 仓库已配置 GPG 签名
- GitHub 已添加对应的 GPG 公钥
接下来你可以:
- 继续使用 -S 参数进行签名提交
- 在 GitHub 上的仓库中,你的提交将显示为 "Verified"
一些建议:
- 妥善保管你的私钥
- 定期检查 GPG 密钥的有效期
- 如果需要,可以创建吊销证书
还有什么关于 GPG 密钥或 Git 签名的问题吗?
四、注意事项与建议
- 妥善保管你的私钥,私钥泄露可能导致安全问题。
- 定期检查 GPG 密钥的有效期,若快过期可及时更新。
- 如果需要,可以创建吊销证书,以便在密钥出现问题时能够及时吊销。
完成以上步骤后,你就成功在 GitHub 上配置了 SSH KEY 和 GPG key,能更安全、可靠地进行代码管理与协作。