首先你得装了git,linux 自带的,Windows自己下载配置一下。
注意 Windows下要用gitbash输入命令行,如果是Linux 就在默认命令行输入命令即可
大致思路如下(不一定对,因为有段时间没弄了):
1. 生成一个公钥和密钥(如果有则跳过这步)
a. 打开Git Bash。
b. 运行下面代码
ssh-keygen -t ed25519 -C "your_email@example.com"
c. 当系统提示“Enter a file in which to save the key(输入要保存密钥的文件)”时,可以按 Enter 键接受默认文件位置,但是 请注意,如果以前创建了 SSH 密钥,则 ssh-keygen 可能会覆盖另一个密钥,如果不想这样,可以手动指定路径。
d. 安全密码我留空了,如果想加密可以设置一个密码并记住它
2. 将 SSH 密钥添加到 ssh-agent
-
确保 ssh-agent 正在运行。(在gitbash中运行下面命令)
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566
-
将 SSH 私钥添加到 ssh-agent。 如果使用其他名称创建了密钥或要添加具有其他名称的现有密钥,请将命令中的 id_ed25519 替换为私钥文件的名称。
ssh-add ~/.ssh/id_ed25519
3.配置 Git 使用 SSH 对提交和标记签名:
git config --global gpg.format ssh
4.在 Git 中设置 SSH 签名密钥,将 /PATH/TO/KEY.PUB 替换为要使用的公钥路径。(一般在 ~/.ssh下面)
$ git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB
打开 home文件夹下的 .gitconfig(Windows 下为C:\Users,linux直接命令行 cd ~)
照着我的配置文件 加入
最终配置文件如下
[user]
name = 你的name
email = 你的邮箱
signingkey = 你的公钥(.pub结尾)
[gpg]
format = ssh
[commit]
gpgsign = true
[tag]
gpgsign = true
如果没问题的话 在代码后面添加
[commit]
gpgsign = true
[tag]
gpgsign = true
这样子 commit 和 tag 都会自动签名。
3. 将 SSH 签名密钥添加到 GitHub 帐户
将 SSH 公钥复制到剪贴板
内容如下,以ssh-ed25519开头,一定要 Ctrl + A 全部复制
点击你GitHub 右上角头像
点击这里
点击这里
两个都要添加,不然git 连接会出错
一个是连接授权,一个是签名。
最后的验证,在git bash输入
ssh -T git@github.com
参考
关于提交签名验证 - GitHub Enterprise Cloud Docs