2011-04-18 16 views
25

我從23.1到23.3只用了半年的emacs。哪裏可以找到Gnu Emacs的公鑰?

每次我試圖找到emacs的GPG公鑰,這樣我可以與每一個新版本發佈tar.gz.sig檢查tar.gz包。原來我每次都失敗了: - ]。

看來我應該先取公鑰和我搜索的emacs的網站,但從未發現了一塊牌子......

我只能找到SHA1校驗碼在郵件列表 http://lists.gnu.org/archive/html/info-gnu-emacs/2011-03/msg00000.html做完整性檢查順便說一下,我並不懷疑FSF的安全性。只是好奇...從來沒有使用GPG之前...

你能不能給我一個鏈接?

感謝

回答

34

如果您嘗試使用

gpg --verify <pkg>.key 

驗證簽名,你會得到像下面這樣的輸出:

gpg: Signature made 02/17/05 14:02:42 GTB Standard Time using DSA key ID BE216115 
gpg: Can't check signature: No public key 

你正在尋找的鑰匙ID是BE216115 ,所以你問GPG使用檢索:

gpg --recv-keys BE216115 

這就造成了我的安裝以下:現在

gpg: requesting key BE216115 from hkp server keys.gnupg.net 
gpg: key BE216115: public key "Francesco Potortì <[email protected]>" imported 
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model 
gpg: depth: 0 valid: 1 signed: 1 trust: 0-, 0q, 0n, 0m, 0f, 1u 
gpg: depth: 1 valid: 1 signed: 6 trust: 0-, 0q, 0n, 0m, 1f, 0u 
gpg: depth: 2 valid: 6 signed: 1 trust: 0-, 0q, 0n, 6m, 0f, 0u 
gpg: Total number processed: 1 
gpg:    imported: 1 

,你可以驗證它。但是,因爲你還沒有分配任何信任該鍵,輸出將是:

gpg: Signature made 02/17/05 14:02:42 GTB Standard Time using DSA key ID BE216115 
gpg: Good signature from "Francesco Potortì <[email protected]>" 
gpg:     aka "Francesco Potortì <[email protected]>" 
gpg:     aka "Francesco Potortì <[email protected]>" 
gpg:     aka "Francesco Potortì <[email protected]>" 
gpg: WARNING: This key is not certified with a trusted signature! 
gpg:   There is no indication that the signature belongs to the owner. 
Primary key fingerprint: 4B02 6187 5C03 D6B1 2E31 7666 09DF 2DC9 BE21 6115 

所以,你會知道,簽名是有效的,但你不信任公鑰。您可以使用信任或簽名的公鑰:

gpg --edit-key BE216115 

在命令提示符下鍵入help看到所有可用的選項。欲瞭解更多信息,請參閱Using the GNU Privacy Guard

+0

非常感謝,這是GPG是如何工作的 – sfszh 2011-04-18 10:56:17

+0

可能感興趣的:http://security.stackexchange.com/q/4161/10198 – sampablokuper 2013-12-31 15:01:57

+0

我怎麼知道我能相信你('BE216115'是關鍵)?也簡單地相信任何添加的密鑰似乎不是一種好的做法。 – Zelphir 2017-05-24 16:57:13

17

GNU的鑰匙圈是/[email protected]:/gnu/gnu-keyring.gpg

您可以

gpg --import gnu-keyring.gpg 
+0

謝謝。接受的答案沒有指定在沒有密鑰服務器時該怎麼做。 – 2015-01-30 03:03:08

+0

這僅僅是驗證下載的有點矯枉過正嗎? – 2015-02-04 09:55:42

+2

@JeffBurdges如果您正在下載軟件,你會然後安裝並運行(可能是根)似乎是合理的,以驗證它是正確的軟件。 – 2015-10-03 02:40:57

8

從@vhallac答案是已經過時的本地導入(下載後),(I」 m試圖驗證一個emacs-24.4下載)。如果你不想下載和導入整個GNU keyring(就像@JSON討論過的那樣),這裏有一個辦法來完成這個任務。在這個答案中,我將展示今天的作品,以及如何找出今後一年的工作。

首先下載Emacs和其.sig文件。我有:

$ ls | grep emacs 
emacs-24.4.tar.xz 
emacs-24.4.tar.xz.sig 

假設你已經安裝了GPG,嘗試驗證:

$ gpg --verify emacs-24.4.tar.xz.sig 
gpg: Signature made Mon 20 Oct 2014 02:58:21 PM EDT using RSA key ID A0B0F199 
gpg: Can't check signature: public key not found 

在此嘗試,它失敗(你會看到這個帖子的最後一次成功的嘗試) 。我沒有公鑰。輸出告訴你你需要獲得哪個公鑰:A0B0F199。 (這是件事,這將在未來最有可能的變化。)

所以我再嘗試用默認的命令下載:

$ gpg --recv-keys A0B0F199 
gpg: requesting key A0B0F199 from hkp server keys.gnupg.net 
(...hangs here...) 

它只是掛起。這是因爲我有ufw(我的Linux防火牆軟件)阻止了大多數端口。你可以告訴GPG使用端口80,就像這樣:

$ gpg --keyserver hkp://keys.gnupg.net:80 --recv-keys A0B0F199 
gpg: requesting key A0B0F199 from hkp server keys.gnupg.net 
gpgkeys: key A0B0F199 not found on keyserver 
gpg: no valid OpenPGP data found. 
gpg: Total number processed: 0 

通過防火牆了,但失敗了,因爲,出於某種原因,Emacs的/ FSF鍵不再被存儲在GnuPG的服務器上。所以我嘗試了我知道的另一個密鑰服務器,並且有一定程度的信任:

$ gpg --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys A0B0F199 
gpg: requesting key A0B0F199 from hkp server pool.sks-keyservers.net 
gpg: key A0B0F199: public key "Glenn Morris <[email protected]>" imported 
gpg: Total number processed: 1 
gpg:    imported: 1 (RSA: 1) 

好吧,它工作。現在檢查它:

$ gpg --list-keys 
... 
pub 2048R/A0B0F199 2012-12-23 [expires: 2015-12-23] 
uid     Glenn Morris <[email protected]> 
sub 2048R/951C59EC 2012-12-23 [expires: 2015-12-23] 

是的,明白了。

現在我可以驗證所下載的壓縮包的emacs:

$ gpg --verify emacs-24.4.tar.xz.sig 
gpg: Signature made Mon 20 Oct 2014 02:58:21 PM EDT using RSA key ID A0B0F199 
gpg: Good signature from "Glenn Morris <[email protected]>" 
gpg: WARNING: This key is not certified with a trusted signature! 
gpg:   There is no indication that the signature belongs to the owner. 
Primary key fingerprint: B294 26DE FB07 724C 3C35 E5D3 6592 E9A3 A0B0 F199 

的簽名是 「好」,但不被信任。查看如何信任該密鑰的其他答案。

+1

您可以創建一個gpg.conf文件與密鑰服務器'密鑰服務器HKP行://pool.sks-keyservers.net:80'。將這個文件gpg.conf到'〜/ .gnupg'(在類Unix環境)或到'C:/用戶/用戶名/應用程序數據/漫遊/ Windows下gnupg' – 2015-03-27 15:27:23

3

有一個在其中解釋瞭如何使用簽名的GNU FTP服務器的根目錄級別README文件。

ftp://ftp.gnu.org/README關於上行的最新版本。

當前文件說:

There are also .sig files, which contain detached GPG signatures of the above 
files, automatically signed by the same script that generates them. 

You can verify the signatures for gnu project files with the keyring file from: 
    ftp://ftp.gnu.org/gnu/gnu-keyring.gpg 

In a directory with the keyring file, the source file to verify and the 
signature file, the command to use is: 

    $ gpg --verify --keyring ./gnu-keyring.gpg foo.tar.xz.sig