导出并保存GPG公密钥
本文转自 导出并保存GPG公密钥
简介
GPG 是开源免费的身份验证工具,简单一句话就是对于公钥使用者可以和密钥拥有者秘密通信;对于密钥使用者,可以像外界证明某句话是你说的;在现实场景中,你可以写了一份信,但是大家怎么知道这份信是你写的呢?如果你身边有熟悉你的人,那TA可以通过你的笔迹或者你家生产的信纸来知道这份信是你的,但是对于别人呢?他们对你不了解,所以他们很难证明:你就是你?
在程序的世界里,你身边都是陌生人,怎么证明你就是你?一般都使用公钥私钥的非对称加密算法。在网上有很多关于 GPG 和Github 结合的说明,比如 GitHub 官网的Doc ; 最重要的另一件事是备份你的公钥和密钥。
备份
列出公钥 :
❯ gpg --list-secret-keys --keyid-format LONG /Users/c4/.gnupg/pubring.kbx ---------------------------- sec rsa4096/XXXXXXXXXXXXXX 2021-04-10 [SC] XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX uid [ 绝对 ] user(仅用来签名git, message) <user@email.com> ssb rsa4096/202XXXXXXXXXXXXX 2021-04-10 [E]
sec 下面的第二行 也就是所有字符都是X的那一行就是 keyId; 导出公钥 :
❯ gpg -a -o public-file.key --export keyId
|
导出会有一个 public-file.key 在当前目录下生成,里面存放你的公钥。
导出私钥
gpg -a -o private-file.key --export-secret-keys keyId
导出一个私钥 private-file.key.
导入公钥私钥
❯ gpg --import xxxx.key
xxxx.key 可以是公钥,也可以是私钥。
保存
公钥可以放在自己的网站或者信任的服务器上,但是私钥一定要自己保管,千万千万不能泄漏出去。否则在计算机的世界里,人人都可以是你。
推荐将你的公钥和私钥都保存在像1password, lastpassword 或者Bitwarden里,我用的是 bitwarden; 因为不能存文件,只能将公钥和私钥的内容复制并拷贝进去。但效果是一样的。
缓存
在设置了强密码的前提下, 我们可以稍微的牺牲一些安全性, 通过配置gpg-agent的 default-cache-ttl, 让我们解密后的私钥在内存中存在的时间稍微长一些(默认10分钟), 比如, 一天 :
#~/.gnupg/gpg-agent.conf default-cache-ttl-ssh 86400 max-cache-ttl-ssh 86400
分发
将公钥发送到CA管理中间机构,方便别人验证 :
❯ gpg -k /Users/c4/.gnupg/pubring.kbx ---------------------------- pub rsa4096 2021-04-11 [SC] 3D4DC54CDDA6FAFDD13A4970D18Axxxxxxxxxx uid [ 绝对 ] guzhongren (used for git&message) <guzhongren@live.cn> sub rsa4096 2021-04-11 [E] ❯ gpg --send-key 3D4DC54CDDA6FAFDD13A4970D18Axxxxxxxxxx
你的私钥差不多就是计算机世界里的另一个你,所以,把你自己保护好。 |