Ubuntu18.04
gpg version 2.24html
GnuPGlinux
栗子文檔git
阮一峯redis
他人用公鑰來加密,本身用私鑰來解密chrome
本身用私鑰來簽名,他人用公鑰來驗證數據庫
The public key is given out to the world; the private key must be kept a secret. Anyone possessing the public key can encrypt a message so that it can only be read by someone possessing the private key. It's also possible to use a private key to sign a file, not encrypt it. If a private key is used to sign a file, then anyone who has the public key can check that the file was signed by that key. Anyone who doesn't have the private key can't forge such a signature.ubuntu
通訊流程vim
The whole scheme relies on the assumption that public keys are trustworthy安全
簡寫 | 含義 | |
---|---|---|
key pair | 密鑰對(包含兩部分) | |
primary key [master key] | 主密鑰(包括主公鑰,主私鑰) | |
public key | pub | 公鑰 |
secret key | sec | 私鑰 |
sub-key | sub | 子公鑰 |
secret sub-key | ssb | 子私鑰 |
key fingerprint | 密鑰指紋 |
/private-keys-v1.d/
私鑰存放的地方
/pubring.kbx
以其餘格式存放的公鑰環,與gpgsm
共享
/trustdb.gpg
存放信任數據
/openpgp-revocs.d/
gpg存儲預先生成的吊銷證書的目錄。文件名對應於相應密鑰的OpenPGP指紋。建議備份這些證書
跟算法有關,有些算法不支持某些功能
有些功能是私鑰部分的,例如 認證[C]、簽名[S]、解密
刪除私鑰部分則沒法完成操做
有些功能是公鑰部分的,例如 驗證簽名、加密[E]
刪除私鑰部分能夠完成操做
# 解密 lfp@legion:~$ gpg --homedir ~/.gnupg-test -o ~/bin/a.de.txt --decrypt ~/bin/a.en.txt gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg: 由 4096 位的 RSA 密鑰加密,鑰匙號爲 0x9B690269F3C16E7B、生成於 2020-05-05 「usmile <usmile@qq.com>」 gpg: 解密失敗:沒有祕匙 # 簽名 lfp@legion:~$ gpg --homedir ~/.gnupg-test --sign ~/bin/test.txt gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg: no default secret key: 沒有祕匙 gpg: signing failed: 沒有祕匙
S: sign
簽名功能
E: encrypt
加密功能
A: authenticate
做用
身份驗證功能
在其餘協議中用於身份驗證,例如SSH TLS
其餘
C: certify
主密鑰必備能力,且只有主密鑰具備
做用
在key id 以後輸入!,將強制使用該key
當多個密鑰同時具備某個功能的時候,優先使用最新未吊銷的密鑰
例若有兩個具備[S]的子密鑰, 在未指定使用哪一個密鑰簽名的狀況下,優先使用最新未被吊銷的密鑰
密鑰的過時時間至關於一個自簽名(本身的私鑰給公鑰簽名),公鑰能夠驗證自身的簽名
修改過時時間就會給本身新增長一個自簽名(覆蓋舊簽名,但不刪除)
公鑰、私鑰的keyID是相同的,一塊兒被建立,每一個公鑰對應一個私鑰
一個主密鑰能夠綁定多個子密鑰,平時加密解密使用的都是子密鑰,主密鑰只有在某些特定的狀況下才使用的,好比新建一個子密鑰,撤銷廢除一個子密鑰,簽名認證別人的密鑰等。
這樣設計的好處的是子密鑰遺失和泄漏不影響主密鑰的信用,只須要撤銷廢除子密鑰,而後再發布到密鑰服務器,告訴其它人這個子密鑰已經做廢了,主密鑰的公鑰長久積累下來的多人簽名認證能夠長久保留下來
若是重建這層信任還要再讓別人再簽名認證你的新密鑰,很麻煩。因此主密鑰特別重要的,若是它泄漏了,那這個主密鑰下全部子密鑰全都報廢
正確的使用姿式是導出主私鑰備份,刪除本機的主私鑰,本機只保留子私鑰用於平常操做,哪怕子密鑰被人盜取,也不影響主密鑰,盡最大程度保護你的主密鑰。
以ASCII 形式輸出
gpg -o file
指定輸出文件名
不能縮寫,打印版本和許可信息
僅在命令行有效
指定生成的密鑰環以及其餘數據保存的地方
默認是~/.gnupg
目錄
mkdir ~/.gnupg-test gpg --homedir ~/gnupg-test
容許用戶執行某些荒謬或「愚蠢」的事情,例如對已過時或已撤銷的密鑰進行簽名,或某些潛在的不兼容的事情,例如生成異常的密鑰類型。這還會禁用有關潛在不兼容操做的某些警告消息。顧名思義,此選項僅適用於專家。若是您不徹底瞭解它容許您執行的操做,請不要進行此操做
在建立具備身份驗證功能[A]的子密鑰時須要添加此參數,不加此參數,缺乏一些可選項
能夠自定義密鑰的參數,具備全部的可選項
使用當前默認的參數快速生成密鑰
同時會生成密鑰的撤銷證書
生成的主密鑰默認具備[SC] 兩項功能
In addition to the key a revocation certificate is created and stored in the ‘openpgp-revocs.d’ directory below the GnuPG home directory
列出公鑰,若是沒有指定則列出全部
列出私鑰,若是沒有指定則列出全部
lfp@legion:~$ gpg --homedir ~/.gnupg-test -k gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' /home/lfp/.gnupg-test/pubring.kbx --------------------------------- pub rsa4096/0x5AF8B6B68CC7F785 2020-05-05 [SC] # 後面沒有日期的是永不過時 密鑰指紋 = 0298 F65F 32F5 A7CA D764 A941 5AF8 B6B6 8CC7 F785 uid [ 絕對 ] usmile <usmile@qq.com> sub rsa4096/0x9B690269F3C16E7B 2020-05-05 [E] # 後面沒有日期的是永不過時 sub rsa3072/0x8EF9605115CB7A14 2020-05-05 [S] [有效至:2020-05-12]
爲整個密鑰(主密鑰以及全部子密鑰)生成撤銷證書,若是僅僅想撤銷某個子密鑰則經過--edit
命令完成
gpg --gen-revoke keyId --output path/revoke.asc
gpg --edit-key <keyid>
編輯該keyid表明的密鑰
gpg --delete-keys <key-id>
從密鑰環中刪除該密鑰的公鑰部分,可是須要先刪除私鑰部分
gpg --delete-secret-keys <key-id>
從密鑰環中刪除該密鑰的私鑰部分,公鑰部分還存在
gpg --delete-secret-and-public-key <key-id>
從密鑰環中刪除該密鑰對,先刪除私鑰再刪除公鑰
gpg --recipient <uid> --output <file-name_en> --encrypt <file-name>
gpg --homedir ~/.gnupg-test -r 0x8EF9605115CB7A14 -o ~/bin/a.en.txt --encrypt ~/bin/a.txt
指定用誰的公鑰加密文件,並指定加密後的文件名
gpg --output <fine-name_de> --decrypt <file-name_en>
解密文件,並指定解密後生成的文件名
採用二進制儲存,生成[.gpg]文件
默認狀況下選擇最新未被吊銷的具備[S]功能的密鑰
能夠經過--local-user
和 --default-key
指定
採用ASCII碼形式儲存,生成[.asc]文件
與文件內容分開存放,生成單獨的簽名文件[.sig](二進制形式)
gpg --detach-sign --armor
生成單獨的簽名文件[.asc](ASCII碼形式)
gpg --verify [.gpg]
驗證簽名
gpg --homedir ./gnupg-test --export --armor --o public-keys.gpg 0xD93D03C13478D580
導出全部密鑰的公鑰部分 (master + subkeys)
能夠指定具體某個密鑰
gpg --homedir ./gnupg-test --export-secret-keys --armor --o secret-keys.gpg 0xD93D03C13478D580
導出全部密鑰的私鑰部分 (master + subkeys)
gpg --homedir ./gnupg-test --export-secret-subkeys --armor --o secret-subkey_sign.gpg 0x1ED73636975EC6DE!
導出某個子密鑰的私鑰部分
hkp(HTTP Keyserver Protocol):http密鑰服務器協議
公鑰服務器能夠經過交換機制同步新上傳的公鑰
公鑰服務器沒有檢查機制,任何人均可以用你的名義上傳公鑰,因此沒有辦法保證服務器上的公鑰的可靠性
通常能夠經過公鑰的指紋來覈對,可是指紋也會被僞造
hkp://keyserver.ubuntu.com:80 hkp://keyserver.ubuntu.com hkp://pgp.mit.edu:80 hkps://pgp.mit.edu
默認的配置文件是 ~/.gnupg/gpg.conf
和 ~/.gnupg/dirmngr.conf
.
不會自動建立,須要手動建立並添加須要的配置
Those files are not there by default, create blank files instead, then use gpg(1) and see the FILES section to configure what you want.
You do not need any sort of default files.
建立配置文件
# 建立配置文件 gpg.conf # 添加以下內容 ################################################################################ # GnuPG View Options # 顯示keyId 16位 16進制數字 # Select how to display key IDs. "long" is the more accurate (but less # convenient) 16-character key ID. Add an "0x" to include an "0x" at the # beginning of the key ID. keyid-format 0xlong # 顯示指紋標識 # List all keys with their fingerprints. This is the same output as --list-keys # but with the additional output of a line with the fingerprint. If this # command is given twice, the fingerprints of all secondary keys are listed too. with-fingerprint # 保存退出
lfp@legion:~$ mkdir ~/.gnupg-test lfp@legion:~$ vim ~/.gnupg-test/gpg.conf lfp@legion:~$ gpg --homedir ~/.gnupg-test --expert --full-gen-key gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. gpg: keybox '/home/lfp/.gnupg-test/pubring.kbx' created 請選擇您要使用的密鑰種類: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (僅用於簽名) (4) RSA (僅用於簽名) (7) DSA (自定義用途) (8) RSA (自定義用途) (9) ECC and ECC (10) ECC (sign only) (11) ECC (set your own capabilities) (13) Existing key 您的選擇? 8 RSA 密鑰可能的操做: 簽名 驗證 加密 認證 目前容許的操做: 簽名 驗證 加密 (S) 選擇是否用於簽名 (E) 選擇是否用於加密 (A) 選擇是否用於認證 (Q) 已完成 您的選擇? s RSA 密鑰可能的操做: 簽名 驗證 加密 認證 目前容許的操做: 驗證 加密 (S) 選擇是否用於簽名 (E) 選擇是否用於加密 (A) 選擇是否用於認證 (Q) 已完成 您的選擇? e RSA 密鑰可能的操做: 簽名 驗證 加密 認證 目前容許的操做: 驗證 (S) 選擇是否用於簽名 (E) 選擇是否用於加密 (A) 選擇是否用於認證 (Q) 已完成 您的選擇? q RSA 密鑰長度應在 1024 位與 4096 位之間。 您想要用多大的密鑰尺寸?(3072) 4096 您所要求的密鑰尺寸是 4096 位 請設定這把密鑰的有效期限。 0 = 密鑰永不過時 <n> = 密鑰在 n 天后過時 <n>w = 密鑰在 n 周後過時 <n>m = 密鑰在 n 月後過時 <n>y = 密鑰在 n 年後過時 密鑰的有效期限是?(0) 1 密鑰於 2020年05月04日 星期一 19時53分23秒 CST 過時 以上正確嗎?(y/n) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>" 真實姓名: usmile 電子郵件地址: usmile@qq.com 註釋: 您選定了這個用戶標識: 「usmile <usmile@qq.com>」 更改姓名(N)、註釋(C)、電子郵件地址(E)或肯定(O)/退出(Q)? o # 此時須要輸入一個口令,必定要記住,後面編輯該密鑰時須要用到 咱們須要生成大量的隨機字節。這個時候您能夠多作些雜事(像是敲打鍵盤、移動 鼠標、讀寫硬盤之類的),這會讓隨機數字發生器有更好的機會得到足夠的熵數。 gpg: /home/lfp/.gnupg-test/trustdb.gpg:創建了信任度數據庫 gpg: 密鑰 0x2954C91DEAE3C032 被標記爲絕對信任 gpg: directory '/home/lfp/.gnupg-test/openpgp-revocs.d' created gpg: revocation certificate stored as '/home/lfp/.gnupg-test/openpgp-revocs.d/76D139A8F9172972195CF33C2954C91DEAE3C032.rev' 公鑰和私鑰已經生成並經簽名。 pub rsa4096/0x2954C91DEAE3C032 2020-05-03 [C] [有效至:2020-05-04] 密鑰指紋 = 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 uid usmile <usmile@qq.com>
lfp@legion:~$ gpg --homedir ~/.gnupg-test -K gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg: 正在檢查信任度數據庫 gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: 深度:0 有效性: 1 已簽名: 0 信任度:0-,0q,0n,0m,0f,1u gpg: 下次信任度數據庫檢查將於 2020-05-04 進行 /home/lfp/.gnupg-test/pubring.kbx --------------------------------- sec rsa4096/0x2954C91DEAE3C032 2020-05-03 [C] [有效至:2020-05-04] 密鑰指紋 = 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 uid [ 絕對 ] usmile <usmile@qq.com>
lfp@legion:~$ gpg --homedir ~/.gnupg-test --expert --edit-key 0x2954C91DEAE3C032 gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 私鑰可用。 sec rsa4096/0x2954C91DEAE3C032 建立於:2020-05-03 有效至:2020-05-04 可用於:C 信任度:絕對 有效性:絕對 [ 絕對 ] (1). usmile <usmile@qq.com> gpg> addkey 請選擇您要使用的密鑰種類: (3) DSA (僅用於簽名) (4) RSA (僅用於簽名) (5) ElGamal (僅用於加密) (6) RSA (僅用於加密) (7) DSA (自定義用途) (8) RSA (自定義用途) (10) ECC (sign only) (11) ECC (set your own capabilities) (12) ECC (encrypt only) (13) Existing key 您的選擇? 4 RSA 密鑰長度應在 1024 位與 4096 位之間。 您想要用多大的密鑰尺寸?(3072) 您所要求的密鑰尺寸是 3072 位 請設定這把密鑰的有效期限。 0 = 密鑰永不過時 <n> = 密鑰在 n 天后過時 <n>w = 密鑰在 n 周後過時 <n>m = 密鑰在 n 月後過時 <n>y = 密鑰在 n 年後過時 密鑰的有效期限是?(0) 1 密鑰於 2020年05月04日 星期一 19時57分58秒 CST 過時 以上正確嗎?(y/n) y 真的要創建嗎?(y/N) y 咱們須要生成大量的隨機字節。這個時候您能夠多作些雜事(像是敲打鍵盤、移動 鼠標、讀寫硬盤之類的),這會讓隨機數字發生器有更好的機會得到足夠的熵數。 sec rsa4096/0x2954C91DEAE3C032 建立於:2020-05-03 有效至:2020-05-04 可用於:C 信任度:絕對 有效性:絕對 ssb rsa3072/0x6E3823DE57F89766 建立於:2020-05-03 有效至:2020-05-04 可用於:S [ 絕對 ] (1). usmile <usmile@qq.com> # 注意必定要保存才能生效 gpg> save
lfp@legion:~$ gpg --homedir ~/.gnupg-test -K gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' /home/lfp/.gnupg-test/pubring.kbx --------------------------------- sec rsa4096/0x2954C91DEAE3C032 2020-05-03 [C] [有效至:2020-05-04] 密鑰指紋 = 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 uid [ 絕對 ] usmile <usmile@qq.com> ssb rsa3072/0x6E3823DE57F89766 2020-05-03 [S] [有效至:2020-05-04] lfp@legion:~$ gpg --homedir ~/.gnupg-test -k gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' /home/lfp/.gnupg-test/pubring.kbx --------------------------------- pub rsa4096/0x2954C91DEAE3C032 2020-05-03 [C] [有效至:2020-05-04] 密鑰指紋 = 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 uid [ 絕對 ] usmile <usmile@qq.com> sub rsa3072/0x6E3823DE57F89766 2020-05-03 [S] [有效至:2020-05-04]
lfp@legion:~$ gpg --homedir ~/.gnupg-test --expert --edit-key 0x2954C91DEAE3C032 gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 私鑰可用。 sec rsa4096/0x2954C91DEAE3C032 建立於:2020-05-03 有效至:2020-05-04 可用於:C 信任度:絕對 有效性:絕對 ssb rsa3072/0x6E3823DE57F89766 建立於:2020-05-03 有效至:2020-05-04 可用於:S [ 絕對 ] (1). usmile <usmile@qq.com> gpg> addkey 請選擇您要使用的密鑰種類: (3) DSA (僅用於簽名) (4) RSA (僅用於簽名) (5) ElGamal (僅用於加密) (6) RSA (僅用於加密) (7) DSA (自定義用途) (8) RSA (自定義用途) (10) ECC (sign only) (11) ECC (set your own capabilities) (12) ECC (encrypt only) (13) Existing key 您的選擇? 8 RSA 密鑰可能的操做: 簽名 加密 認證 目前容許的操做: 簽名 加密 (S) 選擇是否用於簽名 (E) 選擇是否用於加密 (A) 選擇是否用於認證 (Q) 已完成 您的選擇? s RSA 密鑰可能的操做: 簽名 加密 認證 目前容許的操做: 加密 (S) 選擇是否用於簽名 (E) 選擇是否用於加密 (A) 選擇是否用於認證 (Q) 已完成 您的選擇? e RSA 密鑰可能的操做: 簽名 加密 認證 目前容許的操做: (S) 選擇是否用於簽名 (E) 選擇是否用於加密 (A) 選擇是否用於認證 (Q) 已完成 您的選擇? a RSA 密鑰可能的操做: 簽名 加密 認證 目前容許的操做: 認證 (S) 選擇是否用於簽名 (E) 選擇是否用於加密 (A) 選擇是否用於認證 (Q) 已完成 您的選擇? q RSA 密鑰長度應在 1024 位與 4096 位之間。 您想要用多大的密鑰尺寸?(3072) 您所要求的密鑰尺寸是 3072 位 請設定這把密鑰的有效期限。 0 = 密鑰永不過時 <n> = 密鑰在 n 天后過時 <n>w = 密鑰在 n 周後過時 <n>m = 密鑰在 n 月後過時 <n>y = 密鑰在 n 年後過時 密鑰的有效期限是?(0) 1 密鑰於 2020年05月04日 星期一 19時59分46秒 CST 過時 以上正確嗎?(y/n) y 真的要創建嗎?(y/N) y 咱們須要生成大量的隨機字節。這個時候您能夠多作些雜事(像是敲打鍵盤、移動 鼠標、讀寫硬盤之類的),這會讓隨機數字發生器有更好的機會得到足夠的熵數。 sec rsa4096/0x2954C91DEAE3C032 建立於:2020-05-03 有效至:2020-05-04 可用於:C 信任度:絕對 有效性:絕對 ssb rsa3072/0x6E3823DE57F89766 建立於:2020-05-03 有效至:2020-05-04 可用於:S ssb rsa3072/0x2CA24BFA9B038328 建立於:2020-05-03 有效至:2020-05-04 可用於:A [ 絕對 ] (1). usmile <usmile@qq.com> gpg> save
lfp@legion:~$ gpg --homedir ~/.gnupg-test -K gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' /home/lfp/.gnupg-test/pubring.kbx --------------------------------- sec rsa4096/0x2954C91DEAE3C032 2020-05-03 [C] [有效至:2020-05-04] 密鑰指紋 = 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 uid [ 絕對 ] usmile <usmile@qq.com> ssb rsa3072/0x6E3823DE57F89766 2020-05-03 [S] [有效至:2020-05-04] ssb rsa3072/0x2CA24BFA9B038328 2020-05-03 [A] [有效至:2020-05-04]
lfp@legion:~$ gpg --homedir ~/.gnupg-test --expert --edit-key 0x2954C91DEAE3C032 gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 私鑰可用。 sec rsa4096/0x2954C91DEAE3C032 建立於:2020-05-03 有效至:2020-05-04 可用於:C 信任度:絕對 有效性:絕對 ssb rsa3072/0x6E3823DE57F89766 建立於:2020-05-03 有效至:2020-05-04 可用於:S ssb rsa3072/0x2CA24BFA9B038328 建立於:2020-05-03 有效至:2020-05-04 可用於:A [ 絕對 ] (1). usmile <usmile@qq.com> gpg> adduid 真實姓名: usmile 電子郵件地址: usmile@wx.com 註釋: 您選定了這個用戶標識: 「usmile <usmile@wx.com>」 更改姓名(N)、註釋(C)、電子郵件地址(E)或肯定(O)/退出(Q)? o sec rsa4096/0x2954C91DEAE3C032 建立於:2020-05-03 有效至:2020-05-04 可用於:C 信任度:絕對 有效性:絕對 ssb rsa3072/0x6E3823DE57F89766 建立於:2020-05-03 有效至:2020-05-04 可用於:S ssb rsa3072/0x2CA24BFA9B038328 建立於:2020-05-03 有效至:2020-05-04 可用於:A [ 絕對 ] (1) usmile <usmile@qq.com> [ 未知 ] (2). usmile <usmile@wx.com> # 選擇上方 [未知] uid 的編號 gpg> uid 2 sec rsa4096/0x2954C91DEAE3C032 建立於:2020-05-03 有效至:2020-05-04 可用於:C 信任度:絕對 有效性:絕對 ssb rsa3072/0x6E3823DE57F89766 建立於:2020-05-03 有效至:2020-05-04 可用於:S ssb rsa3072/0x2CA24BFA9B038328 建立於:2020-05-03 有效至:2020-05-04 可用於:A [ 絕對 ] (1) usmile <usmile@qq.com> [ 未知 ] (2)* usmile <usmile@wx.com> gpg> primary sec rsa4096/0x2954C91DEAE3C032 建立於:2020-05-03 有效至:2020-05-04 可用於:C 信任度:絕對 有效性:絕對 ssb rsa3072/0x6E3823DE57F89766 建立於:2020-05-03 有效至:2020-05-04 可用於:S ssb rsa3072/0x2CA24BFA9B038328 建立於:2020-05-03 有效至:2020-05-04 可用於:A [ 絕對 ] (1) usmile <usmile@qq.com> [ 未知 ] (2)* usmile <usmile@wx.com> gpg> save
lfp@legion:~$ gpg --homedir ~/.gnupg-test -K gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' /home/lfp/.gnupg-test/pubring.kbx --------------------------------- sec rsa4096/0x2954C91DEAE3C032 2020-05-03 [C] [有效至:2020-05-04] 密鑰指紋 = 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 uid [ 絕對 ] usmile <usmile@wx.com> uid [ 絕對 ] usmile <usmile@qq.com> ssb rsa3072/0x6E3823DE57F89766 2020-05-03 [S] [有效至:2020-05-04] ssb rsa3072/0x2CA24BFA9B038328 2020-05-03 [A] [有效至:2020-05-04]
刪除整個密鑰,而非子密鑰
lfp@legion:~$ gpg --homedir ~/.gnupg-test/ -K gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' /home/lfp/.gnupg-test/pubring.kbx --------------------------------- sec rsa4096/0x2954C91DEAE3C032 2020-05-03 [C] [已過時:2020-05-04] 密鑰指紋 = 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 uid [已過時] usmile <usmile@wx.com> uid [已過時] usmile <usmile@qq.com> sec rsa4096/0x70105702D00EB8F4 2020-05-04 [C] [已吊銷:2020-05-04] 密鑰指紋 = 0B19 E909 EB7D 0060 6615 693F 7010 5702 D00E B8F4 uid [已吊銷] usmile <usmile@qq.com> # 刪除密鑰 lfp@legion:~$ gpg --homedir ~/.gnupg-test/ --delete-secret-and-public-key 0x70105702D00EB8F4 gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. sec rsa4096/0x70105702D00EB8F4 2020-05-04 usmile <usmile@qq.com> 要從鑰匙環裏刪除這把密鑰嗎?(y/N) y 這是一把私鑰!――真的要刪除嗎?(y/N) y pub rsa4096/0x70105702D00EB8F4 2020-05-04 usmile <usmile@qq.com> 要從鑰匙環裏刪除這把密鑰嗎?(y/N) y # 已經刪除 lfp@legion:~$ gpg --homedir ~/.gnupg-test/ -K gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' /home/lfp/.gnupg-test/pubring.kbx --------------------------------- sec rsa4096/0x2954C91DEAE3C032 2020-05-03 [C] [已過時:2020-05-04] 密鑰指紋 = 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 uid [已過時] usmile <usmile@wx.com> uid [已過時] usmile <usmile@qq.com>
# 沒法先刪除公鑰 lfp@legion:~$ gpg --homedir ~/.gnupg-test/ --delete-keys 0x2954C91DEAE3C032 gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. gpg: 公鑰「0x2954C91DEAE3C032」有對應的私鑰! gpg: 請先使用「--delete-secret-keys」選項來刪除它。 # 先刪除私鑰部分才能刪除公鑰部分 lfp@legion:~$ gpg --homedir ~/.gnupg-test/ --delete-secret-keys 0x2954C91DEAE3C032 gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. sec rsa4096/0x2954C91DEAE3C032 2020-05-03 usmile <usmile@wx.com> 要從鑰匙環裏刪除這把密鑰嗎?(y/N) y 這是一把私鑰!――真的要刪除嗎?(y/N) y
lfp@legion:~/bin$ gpg -k /home/lfp/.gnupg/pubring.kbx ---------------------------- pub rsa3072/0x16A3B99FBAC538AE 2020-05-01 [SC] [已吊銷:2020-05-04] 密鑰指紋 = 1256 45C3 0AAB 72BB D113 4A5F 16A3 B99F BAC5 38AE uid [已吊銷] lfp1024 <lfp1024@126.com> pub rsa4096/0x92C4D0C89EAA7333 2020-05-04 [SC] [有效至:2020-05-05] 密鑰指紋 = C95B 86BC 7919 F706 8CD6 2B08 92C4 D0C8 9EAA 7333 uid [ 絕對 ] usmile <usmile@qq.com> sub rsa4096/0x918087E1E6101F9D 2020-05-04 [E] [有效至:2020-05-05] lfp@legion:~/bin$ gpg --recipient 0x918087E1E6101F9D --output ~/bin/test.en.txt --encrypt test.txt lfp@legion:~/bin$ gpg --decrypt test.en.txt --output test.de.txt gpg: Note: '--output' is not considered an option usage: gpg [options] --decrypt [filename] lfp@legion:~/bin$ gpg --output test.de.txt --decrypt test.en.txt gpg: 由 4096 位的 RSA 密鑰加密,鑰匙號爲 0x918087E1E6101F9D、生成於 2020-05-04 「usmile <usmile@qq.com>」
經過默認配置生成的主密鑰具備[SC]兩種功能,若是同時存在一個具備[S]功能的子密鑰,則會經過子密鑰去簽名
實際是經過密鑰的私鑰部分去簽名,而後經過該密鑰的公鑰部分去驗證簽名
# 在當前目錄生成一份包含文件內容的簽名文件 sign-test.Release.gpg lfp@legion:~$ gpg --homedir ~/.gnupg-test --sign sign-test.Release gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' # 在當前目錄生成一份包含文件內容的簽名文件 sign-test.Release.asc lfp@legion:~$ gpg --homedir ~/.gnupg-test --clearsign sign-test.Release gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' # 在當前目錄生成一份【不包含】文件內容的簽名文件 sign-test.Release.sig lfp@legion:~$ gpg --homedir ~/.gnupg-test --detach-sign sign-test.Release gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' # 在當前目錄生成一份【不包含】文件內容的簽名文件 sign-test.Release.asc lfp@legion:~$ gpg --homedir ~/.gnupg-test --detach-sign --armor sign-test.Release gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' # 能夠經過 --output 指定路徑及文件名,可是須要注意參數的位置,要放在 --sign 以前 lfp@legion:~$ gpg --homedir ~/.gnupg-test --output ~/bin/sign-test.Release.gpg --sign sign-test.Release gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' lfp@legion:~$ gpg --homedir ~/.gnupg-test --output ~/bin/sign-test.Release.asc --clearsign sign-test.Release gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test'
lfp@legion:~$ gpg --homedir ~/.gnupg-test -k gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' /home/lfp/.gnupg-test/pubring.kbx --------------------------------- pub rsa4096/0x2954C91DEAE3C032 2020-05-03 [C] [有效至:2020-05-04] 密鑰指紋 = 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 uid [ 絕對 ] usmile <usmile@wx.com> uid [ 絕對 ] usmile <usmile@qq.com> sub rsa3072/0x6E3823DE57F89766 2020-05-03 [S] [有效至:2020-05-04] sub rsa3072/0x2CA24BFA9B038328 2020-05-03 [A] [有效至:2020-05-04] # gpgv 須要經過 --keyring 指定密鑰環 lfp@legion:~$ gpgv --keyring ~/.gnupg-test/pubring.kbx sign-test.Release.gpg gpgv: 簽名創建於 2020年05月04日 星期一 19時01分58秒 CST # 後16位即便用的密鑰ID 0x6E3823DE57F89766 gpgv: 使用 RSA 密鑰 92E43802C92A69A4F7B069E86E3823DE57F89766 gpgv: 無缺的簽名,來自於「usmile <usmile@wx.com>」 # 由於有兩個uid gpgv: 亦即「usmile <usmile@qq.com>」 # gpg 只須要指出homedir 便可 # 經過gpg驗證能夠檢查出密鑰是否過時 lfp@legion:~$ gpg --homedir ~/.gnupg-test/ --verify sign-test.Release.gpg gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg: 簽名創建於 2020年05月04日 星期一 19時01分58秒 CST gpg: 使用 RSA 密鑰 92E43802C92A69A4F7B069E86E3823DE57F89766 gpg: 無缺的簽名,來自於「usmile <usmile@wx.com>」 [已過時] gpg: 亦即「usmile <usmile@qq.com>」 [已過時] gpg: 注意:這把密鑰已通過期了! 主鑰指紋: 76D1 39A8 F917 2972 195C F33C 2954 C91D EAE3 C032 子鑰指紋: 92E4 3802 C92A 69A4 F7B0 69E8 6E38 23DE 57F8 9766 ######################################################################## lfp@legion:~/.gnupg$ gpg -k /home/lfp/.gnupg/pubring.kbx ---------------------------- pub rsa3072/0x16A3B99FBAC538AE 2020-05-01 [SC] [已吊銷:2020-05-04] 密鑰指紋 = 1256 45C3 0AAB 72BB D113 4A5F 16A3 B99F BAC5 38AE uid [已吊銷] lfp1024 <lfp1024@126.com> # 沒法斷定密鑰的性質 lfp@legion:~/.gnupg$ gpgv --keyring ~/.gnupg/pubring.kbx ~/bin/test.txt.gpg gpgv: 簽名創建於 2020年05月04日 星期一 19時17分25秒 CST gpgv: 使用 RSA 密鑰 3142022C68CD0B034DBAA5A0CF8C3097514C5331 gpgv: 無缺的簽名,來自於「lfp1024 <lfp1024@126.com>」 # 經過gpg驗證能夠檢查出密鑰是否被吊銷 lfp@legion:~/.gnupg$ gpg --verify ~/bin/test.txt.gpg gpg: 簽名創建於 2020年05月04日 星期一 19時17分25秒 CST gpg: 使用 RSA 密鑰 3142022C68CD0B034DBAA5A0CF8C3097514C5331 gpg: 無缺的簽名,來自於「lfp1024 <lfp1024@126.com>」 [絕對] gpg: 警告:這把密鑰已經被它的持有者吊銷了! gpg: 這代表這個簽名有多是僞造的。 gpg: 吊銷緣由: 密鑰再也不使用 主鑰指紋: 1256 45C3 0AAB 72BB D113 4A5F 16A3 B99F BAC5 38AE 子鑰指紋: 3142 022C 68CD 0B03 4DBA A5A0 CF8C 3097 514C 5331
經過gpg --keyring
驗證,測試不行
# 測試發現,不能正確驗證,沒法識別密鑰 lfp@legion:~/.gnupg-test$ gpg --keyring ~/.gnupg-test/pubring.kbx --no-default-keyring --verify ~/sign-test.Release.asc gpg: assuming signed data in '/home/lfp/sign-test.Release' gpg: 簽名創建於 2020年05月04日 星期一 21時45分27秒 CST gpg: 使用 RSA 密鑰 5C886AA3B13C8CD76A453E6517B875E5EB1FA9D1 gpg: 無缺的簽名,來自於「usmile <usmile@qq.com>」 [未知] gpg: 警告:這把密鑰未經受信任的簽名認證! gpg: 沒有證據代表這個簽名屬於它所聲稱的持有者。 主鑰指紋: 0B19 E909 EB7D 0060 6615 693F 7010 5702 D00E B8F4 子鑰指紋: 5C88 6AA3 B13C 8CD7 6A45 3E65 17B8 75E5 EB1F A9D1 lfp@legion:~/.gnupg-test$ gpg --homedir ~/.gnupg-test/ --verify ~/sign-test.Release.asc gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg: assuming signed data in '/home/lfp/sign-test.Release' gpg: 簽名創建於 2020年05月04日 星期一 21時45分27秒 CST gpg: 使用 RSA 密鑰 5C886AA3B13C8CD76A453E6517B875E5EB1FA9D1 gpg: 無缺的簽名,來自於「usmile <usmile@qq.com>」 [絕對] 主鑰指紋: 0B19 E909 EB7D 0060 6615 693F 7010 5702 D00E B8F4 子鑰指紋: 5C88 6AA3 B13C 8CD7 6A45 3E65 17B8 75E5 EB1F A9D1
# 生成吊銷證書 # 經過 --output 配置項指定生成文件目錄及名稱,注意順序在前 lfp@legion:~$ gpg --homedir ~/.gnupg-test/ --output ~/.gnupg-test/rev.asc --gen-revoke 0x70105702D00EB8F4 gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' sec rsa4096/0x70105702D00EB8F4 2020-05-04 usmile <usmile@qq.com> 要爲這把密鑰創建一份吊銷證書嗎?(y/N) y 請選擇吊銷的緣由: 0 = 未指定緣由 1 = 密鑰已泄漏 2 = 密鑰被替換 3 = 密鑰再也不使用 Q = 取消 (也許您會想要在這裏選擇 1) 您的決定是什麼? 3 請輸入描述(可選);以空白行結束: > 吊銷緣由:密鑰再也不使用 (不給定描述) 這樣能夠嗎? (y/N) y 已強行使用 ASCII 封裝過的輸出。 已創建吊銷證書。 請把這個文件轉移到一個可隱藏起來的介質(如軟盤)上;若是壞人可以取得這 份證書的話,那麼他就能讓您的密鑰沒法繼續使用。把這份憑證打印出來再藏 到安全的地方也是很好的方法,以避免您的保存媒體損毀而沒法讀取。可是千萬 當心:您的機器上的打印系統可能會在打印過程當中把這些數據臨時在某個其餘 人也可以看獲得的地方!
# 導入並吊銷整個密鑰 lfp@legion:~$ gpg --homedir ~/.gnupg-test/ --import ~/.gnupg-test/rev.asc gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg: 密鑰 0x70105702D00EB8F4:「usmile <usmile@qq.com>」吊銷證書已被導入 gpg: 合計被處理的數量:1 gpg: 新的密鑰吊銷:1 gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: 深度:0 有效性: 2 已簽名: 0 信任度:0-,0q,0n,0m,0f,2u gpg: 下次信任度數據庫檢查將於 2020-05-06 進行
lfp@legion:~$ gpg -k /home/lfp/.gnupg/pubring.kbx ---------------------------- pub rsa3072/0x16A3B99FBAC538AE 2020-05-01 [SC] [已吊銷:2020-05-04] 密鑰指紋 = 1256 45C3 0AAB 72BB D113 4A5F 16A3 B99F BAC5 38AE uid [已吊銷] lfp1024 <lfp1024@126.com> pub rsa4096/0x92C4D0C89EAA7333 2020-05-04 [SC] [有效至:2020-05-05] 密鑰指紋 = C95B 86BC 7919 F706 8CD6 2B08 92C4 D0C8 9EAA 7333 uid [ 絕對 ] usmile <usmile@qq.com> sub rsa4096/0x918087E1E6101F9D 2020-05-04 [E] [有效至:2020-05-05] # 找不到。。。 lfp@legion:~$ gpg --import ~/.gnupg/openpgp-revocs.d/C95B86BC7919F7068CD62B0892C4D0C89EAA7333.rev gpg: 找不到有效的 OpenPGP 數據。 gpg: 合計被處理的數量:0
# Search your key on the key-server gpg --keyserver <服務器地址> --search-keys <key-ID> # Send the revoked key to the key-server gpg --keyserver <服務器地址> --send-keys <key-ID>
https://superuser.com/questions/1526283/how-to-revoke-a-gpg-key-and-upload-in-gpg-server
吊銷某個uid同理,用uid 1
選定某個uid,經過revuid
吊銷
-delkey
只刪除密鑰的公共部分,若是已經上傳到公鑰服務器,則須要使用-revkey
吊銷並上傳公鑰服務器
lfp@legion:~/.gnupg-test$ gpg --homedir ~/.gnupg-test/ --expert --edit-key 0x70105702D00EB8F4 gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. 私鑰可用。 sec rsa4096/0x70105702D00EB8F4 建立於:2020-05-04 有效至:2020-05-06 可用於:C 信任度:絕對 有效性:絕對 ssb rsa3072/0x17B875E5EB1FA9D1 建立於:2020-05-04 有效至:2020-05-06 可用於:S [ 絕對 ] (1). usmile <usmile@qq.com> # 選定某個子密鑰,下標從1開始 gpg> key 1 sec rsa4096/0x70105702D00EB8F4 建立於:2020-05-04 有效至:2020-05-06 可用於:C 信任度:絕對 有效性:絕對 # 選定該子密鑰 ssb* rsa3072/0x17B875E5EB1FA9D1 建立於:2020-05-04 有效至:2020-05-06 可用於:S [ 絕對 ] (1). usmile <usmile@qq.com> gpg> revkey 您真的要吊銷這把子鑰嗎?(y/N) y 請選擇吊銷的緣由: 0 = 未指定緣由 1 = 密鑰已泄漏 2 = 密鑰被替換 3 = 密鑰再也不使用 Q = 取消 您的決定是什麼? 3 請輸入描述(可選);以空白行結束: > 吊銷緣由:密鑰再也不使用 (不給定描述) 這樣能夠嗎? (y/N) y sec rsa4096/0x70105702D00EB8F4 建立於:2020-05-04 有效至:2020-05-06 可用於:C 信任度:絕對 有效性:絕對 The following key was revoked on 2020-05-04 by RSA key 0x70105702D00EB8F4 usmile <usmile@qq.com> ssb rsa3072/0x17B875E5EB1FA9D1 建立於:2020-05-04 已吊銷:2020-05-04 可用於:S [ 絕對 ] (1). usmile <usmile@qq.com> gpg> save
終端執行apt-key list
的時候會列出apt密鑰環中保存的密鑰,包括/etc/apt/trusted.gpg
以及/etc/apt/trusted.gpg.d/
中的密鑰
發現公鑰具備[SC]功能,而[C]功能具備認證子密鑰的能力,怎麼能公開呢?測試以下
查看第三方密鑰
lfp@legion:/etc/apt/trusted.gpg.d$ gpg sogou-archive-keyring.gpg gpg: WARNING: no command supplied. Trying to guess what you mean ... pub rsa4096/0xD259B7555E1D3C58 2014-04-09 [SC] 密鑰指紋 = 6CE3 5A4E BAB6 7609 4476 BE7C D259 B755 5E1D 3C58 uid Ubuntu Kylin Archive Automatic Signing Key <council@ubuntukylin.com> sub rsa4096/0xFED969A4DF6E30B5 2014-04-09 [E]
導出到文件
lfp@legion:~$ apt-key export 0xD259B7555E1D3C58 > ~/sogou-pub.asc Warning: apt-key output should not be parsed (stdout is not a terminal)
導入本地gpg密鑰環
lfp@legion:~$ gpg --homedir ~/.gnupg-test --import ~/sogou-pub.asc gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg: 密鑰 0xD259B7555E1D3C58:公鑰「Ubuntu Kylin Archive Automatic Signing Key <council@ubuntukylin.com>」已導入 gpg: 合計被處理的數量:1 gpg: 已導入:1 # 查看 lfp@legion:~$ gpg --homedir ~/.gnupg-test -k gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' /home/lfp/.gnupg-test/pubring.kbx --------------------------------- pub rsa4096/0x5AF8B6B68CC7F785 2020-05-05 [SC] 密鑰指紋 = 0298 F65F 32F5 A7CA D764 A941 5AF8 B6B6 8CC7 F785 uid [ 絕對 ] usmile <usmile@qq.com> sub rsa4096/0x9B690269F3C16E7B 2020-05-05 [E] # 導入成功 pub rsa4096/0xD259B7555E1D3C58 2014-04-09 [SC] 密鑰指紋 = 6CE3 5A4E BAB6 7609 4476 BE7C D259 B755 5E1D 3C58 uid [ 未知 ] Ubuntu Kylin Archive Automatic Signing Key <council@ubuntukylin.com> sub rsa4096/0xFED969A4DF6E30B5 2014-04-09 [E]
編輯該密鑰
發現雖然公鑰顯示[SC],可是缺乏私鑰部分,沒有認證[C]權限
lfp@legion:~$ gpg --homedir ~/.gnupg-test --expert --edit-key 0xD259B7555E1D3C58 gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. pub rsa4096/0xD259B7555E1D3C58 建立於:2014-04-09 有效至:永不過時 可用於:SC 信任度:未知 有效性:未知 sub rsa4096/0xFED969A4DF6E30B5 建立於:2014-04-09 有效至:永不過時 可用於:E [ 未知 ] (1). Ubuntu Kylin Archive Automatic Signing Key <council@ubuntukylin.com> gpg> addkey 要有私鑰才能這麼作。 gpg> adduid 要有私鑰才能這麼作。 gpg> revkey 要有私鑰才能這麼作。 gpg> expire 要有私鑰才能這麼作。 gpg> quit
由於apt管理的本地密鑰過時以後出現沒法驗證簽名的狀況
本地測試沒法經過--edit-key expire
馬上將子密鑰過時,因此測試將一把子密鑰吊銷
步驟
使用默認子密鑰簽名一個文件
同時生成兩個具備[S]功能的子密鑰
測試沒法經過'--default-key' 指定使用哪一個密鑰簽名
默認選擇最新生成的具備[S]功能的有效密鑰簽名
將該子密鑰吊銷
用具備[S]功能的其餘子密鑰驗證
結果
# 此時仍有一把具備[S]功能的子密鑰 lfp@legion:~$ gpg --homedir ~/.gnupg-test --verify ~/a.txt.asc gpg: WARNING: unsafe permissions on homedir '/home/lfp/.gnupg-test' gpg: 簽名創建於 2020年05月07日 星期四 18時43分49秒 CST gpg: 使用 RSA 密鑰 200AA10D5E17D1CAD1FF9B1FCCA5416788D7F49C gpg: 無缺的簽名,來自於「usmile <usmile@qq.com>」 [絕對] gpg: 警告:這把子鑰已經被它的持有者吊銷了! gpg: 吊銷緣由: 密鑰再也不使用 主鑰指紋: FABD 2A75 6CF5 983C 9655 7FA0 0FC1 D26E D395 4622 子鑰指紋: 200A A10D 5E17 D1CA D1FF 9B1F CCA5 4167 88D7 F49C gpg: WARNING: not a detached signature; file '/home/lfp/a.txt' was NOT verified!
gpgv 是一個 OpenPGP 簽名驗證工具,沒有配置文件,只有簡單的選項
gpgv 默認全部的密鑰都是可信賴的,不會檢查其是否過時或被吊銷
This program is actually a stripped-down version of gpg which is only able to check
signatures. It is somewhat smaller than the fully-blown gpg and uses a different (and
simpler) way to check that the public keys used to make the signature are valid. There are
no configuration files and only a few options are implemented.
gpgv assumes that all keys in the keyring are trustworthy. That does also mean that it
does not check for expired or revoked keys
-v
顯示更多驗證信息
--keyring file
指定用來驗證的密鑰環
gpgv pgpfile
用來驗證包含數據的簽名
lfp@legion:~$ gpgv --keyring [~/.gnupg-test/pubring.kbx] [sign-test.Release.gpg ]
gpgv sigfile [datafile]
sigfile 簽名文件
datafile 數據文件,若是不指定,則會把 sigfile 後綴(.asc .sig .sign)去掉,當作數據文件
例如谷歌
簽名文件 dl.google.com_linux_chrome_deb_dists_stable_Release.gpg
數據文件 dl.google.com_linux_chrome_deb_dists_stable_Release
用來驗證不包含數據的簽名(簽名文件和數據文件分離)
lfp@legion:/var/lib/apt/lists$ gpgv --keyring [/etc/apt/trusted.gpg ] [dl.google.com_linux_chrome_deb_dists_stable_Release.gpg] [dl.google.com_linux_chrome_deb_dists_stable_Release]
對commit進行簽名
-----END-----
有不正確的地方,歡迎留言指正,謝謝大佬!