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

推荐订阅源

IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
ThreatConnect
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 聂微东
H
Help Net Security
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
A
Arctic Wolf
G
Google Developers Blog
量子位
U
Unit 42
I
InfoQ
V
V2EX
F
Fox-IT International blog
P
Privacy & Cybersecurity Law Blog
V
Visual Studio Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
C
CERT Recently Published Vulnerability Notes
博客园 - 三生石上(FineUI控件)
T
The Exploit Database - CXSecurity.com
T
Tailwind CSS Blog
SecWiki News
SecWiki News
Know Your Adversary
Know Your Adversary
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
The Hacker News
The Hacker News
Project Zero
Project Zero
Application and Cybersecurity Blog
Application and Cybersecurity Blog
月光博客
月光博客
Recent Commits to openclaw:main
Recent Commits to openclaw:main
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
GRAHAM CLULEY
C
Cisco Blogs
I
Intezer
Simon Willison's Weblog
Simon Willison's Weblog
O
OpenAI News
Recorded Future
Recorded Future
T
Tenable Blog
W
WeLiveSecurity
腾讯CDC
Stack Overflow Blog
Stack Overflow Blog
T
The Blog of Author Tim Ferriss
www.infosecurity-magazine.com
www.infosecurity-magazine.com
D
Docker
C
Cybersecurity and Infrastructure Security Agency CISA
PCI Perspectives
PCI Perspectives

技术改变视野

为程序员、设计师打造的摸鱼社区:摸鱼派! - 技术改变视野 我在 GitHub 上的开源项目 - 技术改变视野 从 SpringMVC 转为使用 SpringBoot —— 手把手带你使用 Intellij IDEA 最快速地搭建 SpringBoot+MyBatis(无 XML)+Thymeleaf 无题 年轻人的第一辆京牌电动车 - 技术改变视野 我们忙碌且漫长的一生,有多久是为自己而活? 说说《后浪》 离线使用 Google Fonts:让你的网站更精致 | goofoffline 神器,一键下载生成离线字体库! :art: 适用于 Solo / Bolo 的清新高级主题 —— Sakura | 移植自 WordPress 主题 大白话之Java级联调用:一个类,一条语句,同时调用好几个方法,串成一串 大白话 | Java初学指♂男:“说说初学的误区与死结”( 壹 | 反射与Field ) 一个实例理解Java的接口(interface)用处与用法 一个实例带你理解JavaBean WebFilter-SpringBoot过滤器注解实例讲解 实例带你搞懂Java多线程&&线程池之(壹):线程池与多线程的关系和区别 实例带你搞懂Java多线程&&线程池之(贰):简单的线程池应用 实例带你获取多线程Thread的返回值之 (壹) - Callable的运行 实例带你学会简单的Java Thread多线程 实例带你获取多线程Thread的返回值之 (贰) - Callable配合线程池返回数据
为IDEA/Git配置GPG密钥,点亮GitHub Verified Commit标识 - 技术改变视野
adlered · 2021-03-06 · via 技术改变视野

image.png

前言

为 Git 设置一个 GPG 密钥后,将在每次 Commit 时确认你配置的密码,并在 GitHub 的 Commit 中显示 Verified 标识,以此标记这个 Commit 确实是由你本人完成的,而不是其他人的假冒。

image.png

教程

系统环境

操作系统版本:Windows 10 X64
使用的IDE:Intellij IDEA

安装

点击这里下载并安装GPG工具,按照下图中指示下载安装程序

image.png

image.png

image.png

生成一个新的密钥

首先,我们需要生成一个带有个人信息的 GPG 密钥。

生成密钥
1gpg --full-generate-key
  1. 首先 GPG 会询问生成何种加密类型的密钥,直接按回车,默认 RSA and RSA 方式即可
  2. 询问密钥位数,输入 4096 后按回车(GitHub 仅接受 4096 位及以上的位数,安全性更强)
  3. 询问密钥的过期时间,我们一般是不希望密钥过期的,直接按回车默认不过期即可
  4. 询问 “Is this correct?”确认信息输入无误后,输入 y 并回车

image.png

输入个人信息

确认信息无误后,还需要一些你的个人信息。

  1. 询问 Real name,填写你的英文名后回车提交即可(可以和 GitHub 的用户名不同)
  2. 询问 Email address,一定要填写在你的 GitHub 中认证过的邮箱地址
  3. 询问 Comment,备注,填写 GitHub Key(随便填都可以)
  4. 按 o (英文字母)并回车,保存更改

image.png

设置密码

在设置个人信息后,你的电脑会弹出一个密码输入窗口,输入两次相同的密码,为密钥设置密码(一定要记住密码)

image.png

生成完毕

等待证书生成完成(如果生成的很慢,可以在终端里随便按一些英文字母,随便滑两下鼠标,给密钥生成提供一些随机熵)

image.png

将密钥绑定至 GitHub

输入命令获取你的 GPG Key ID
1gpg --list-secret-keys --keyid-format LONG

找到 uid 行和你刚刚设置的信息相同的字段,在 uid 行的上一 sec 行找到你的 GPG Key ID,本次实验的 GPG Key ID 为 58F7B5539BF1B95B,记住它,一会我们要用到几次

image.png

导出完整公钥

使用命令

1gpg --armor --export [GPG Key ID]

image.png

会生成一段很长的公钥内容,将从 -----BEGIN PGP PUBLIC KEY BLOCK----- 开头,以 -----END PGP PUBLIC KEY BLOCK----- 为结尾(包括这两行)的内容复制下来

将公钥放到 GitHub 中

进入 GitHub,访问你的用户设定界面

image.png

找到 SSH and GPG Keys 选项卡,点击 New GPG key 按钮(不要点错,不要点错,不要点错)

image.png

粘贴公钥并保存

image.png

image.png

将密钥绑定至本地 Git

IDEA 调用的是本地的 Git,所以将 Git 直接配置好 GPG Key 即可。

确定 Git 设定的邮箱是否正确

使用命令 git config --global user.email 查看当前 git 命令所使用的邮箱地址,如果不对,请使用 git config --global user.email "新的邮箱地址" 进行更新。

image.png

为 Git 指定 GPG Key ID

还记得刚刚查询的 GPG Key ID 吗?让 git 知道它该使用这个 GPG Key。

1git config --global user.signingkey [你的 GPG Key ID]

image.png

将所有本地 Commit 默认使用 GPG 进行签名

如果不操作本步骤,默认的 commit 还是会直接跳过签名,你可以通过在 commit 时加入 -S 参数来临时使用 GPG 进行签名。

1git config --global commit.gpgsign true

image.png

指定 GPG 程序所在位置

Git 每次 commit 需要向 GPG 程序查找你的 GPG Key,由于新版 GPG 程序的程序目录有变更,Git 程序可能会找不到它而报错,使用命令

1git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"

image.png

文中设定的 gpg.exe 所在位置可能和你安装的位置不同,请仔细核对后设定。

测试

一切就绪,在你的 IDEA 中进行一次 Commit,并且 Push 到 GitHub 中试试吧:

image.png

每次 Commit 都需要验证密钥的密码进行验证:

image.png

再 Push 到 GitHub 试试看:

image.png

image.png

image.png

加密成功,赞。

后语

官方文档原文:

You can sign your work locally using GPG or S/MIME. GitHub will verify these signatures so other people will know that your commits come from a trusted source. GitHub will automatically sign commits you make using the GitHub web interface.

您可以使用 GPG 或 S/MIME 在本地签名您的作品。GitHub 将验证这些签名,以便其他人知道您的提交来自受信任的来源。GitHub 在您使用 GitHub Web 时将自动对 Commits 进行签名。