惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
云风的 BLOG
云风的 BLOG
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
Engineering at Meta
Engineering at Meta
Vercel News
Vercel News
Y
Y Combinator Blog
B
Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Check Point Blog
M
MIT News - Artificial intelligence
Jina AI
Jina AI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
博客园 - 司徒正美
I
InfoQ
Google DeepMind News
Google DeepMind News
GbyAI
GbyAI
U
Unit 42

See you soon

哟,好久不见,无线打印 | See you soon 试试将文章版本化管理吧 | See you soon 使用 Quadlet 将 Podman 中的 Postgres 当作 systemd 服务运行 | See you soon 大他者,那个无时无刻都在盯着你的东西 | See you soon Laws of Software Engineering,软件工程定律 | See you soon 浅记多因素身份认证 | See you soon Linux 内核中的度量单位 | See you soon 重置 GPG 智能密钥 | See you soon 向 NAS 引入 samba | See you soon 无法重复键入的 Fcitx5 | See you soon ZFS 降级事故 | See you soon 记被 XanMod Kernel 和 AppArmor 联合坑的一次踩坑 | See you soon agent 的 skill 与 toolcall | See you soon 记一次服务器被挂恶意挖矿二进制 | See you soon 活着的 Arc | See you soon 令 acme.sh 使用 Cloudflare 的 DNS API 签发与续签证书 | See you soon 于 Tokio 中卸载 CPU Bound 任务 | See you soon 如我所见,梦破碎的时候 | See you soon 74LS 家族手册 | See you soon JDK Projects 备忘录 | See you soon 关于历史 | See you soon 用 curl 下载 OnePlus 的 ROM | See you soon 实用命令切片 | See you soon 再见,Oh My Zsh。 | See you soon 你不应该复用 strings.Builder | See you soon 博客的明日 | See you soon 被 AppArmor 击杀的 Dockge | See you soon AI 时代的自我 | See you soon 支持删除的布隆过滤器 | See you soon 基于栈的虚拟机与基于寄存器的虚拟机 | See you soon
用GPG签名告诉大家这就是我的提交 | See you soon
Krysztal Huang · 2022-02-18 · via See you soon

同学们早,大家签名 Commit 了吗?不签也可以,随便你。jpg

其实并不是我主动发现的这个功能,而是我看到了这些个洋葱新闻才发现了问题:

好吧,还是搞搞 GPG 签名比较稳妥,虽然我的项目也不会有人这么搞就是了

NOTE

本来这是 GitHub 很早前就有的漏洞了,他们说这个不影响。现在闹大了才勉强对这种情况标了个游离提交

Git 本身使用邮箱标注是谁的提交,这样就意味着可以随意冒充。但是新版本 Git 支持了 GPG 签名,这样就算 SSH Key 泄露了也能保证这个提交是你的了

NOTE

Windows 的 git 已经包含了 GPG,不需要额外安装了。但是需要在 GitBash 下才能使用。不过 VSCode 也可以使用就是了

验证是否已经有了 GPG 密钥

gpg --list-secret-keys --keyid-format LONG

如果输出有的话,那么就不想要新建了

新建 GPG 密钥

可以一路回车,输入邮箱之类的推荐用在 GitHub 验证过的

其实按照 GitHub 的工作原理的话,邮箱也必须是在 GitHub 验证过的

导出公匙

列出所有密钥

gpg --list-secret-keys --keyid-format=long

举个例子,假设它的输出为下面这样

当然,你能通过时间看出来谁是最新的,最新的那个当然是你想要的

$ gpg --list-secret-keys --keyid-format=long

/Users/hubot/.gnupg/secring.gpg

------------------------------------

sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]

uid Hubot

ssb 4096R/42B317FD4BA89E7A 2016-03-10

复制以 sec 开头的 GPG 密钥 ID

根据上面一条的输出,所以它的密钥 ID 为

导出该 ID 的公钥

根据上一步,接下来我们的命令会变成这样

gpg --armor --export pub 3AA5C34371567BD2

他会输出你的公钥,把它们全部粘贴复制到 GitHub 的 GPG Keys 里面就行

将 GPG 密钥与 Git 关联

把上面的 ID 粘贴复制下来,输入下面这个命令

git config --global user.signingkey 3AA5C34371567BD2

然后我们需要让 Git 默认用 GPG 签名

git config --global commit.gpgsign true

大功告成