2016-04-12 133 views
0

有一個文件,我想通過加密文件掛永遠

gpg2 --homedir=~/.gnupg --always-trust=true --recipient="BlahBlah" --encrypt=/path/to/file --output=/path/to/output_file 

使用GnuPG加密然而,這似乎命令永遠掛起,不會再回來。有趣的是,在中斷進程之後,確實創建了/path/to/output_file,但是寫入的字節比原始有效負載大得多(例如,我的/path/to/file僅爲5個字節,但結果表明有大約200個字節寫入/path/to/output_file)。

一定有什麼問題,但我真的搞不清楚它是什麼。

我預先通過gpg --import key.asc導入了BlahBlah的密鑰。它發生在GnuPG 1和GnuPG 2中。

回答

2

您正在以錯誤的方式申請--encrypt--encrypt不期望任何參數,要處理的文件作爲最後一個參數傳遞。此外,按照文檔,您應通過--output /path/to/output_file而不是--output=/path/to/output_file。最後,GnuPG區分選項和命令,選項應該在命令之前。

你觀察到的是GnuPG開始寫頭信息,但是等待從STDIN輸入(直到被中斷)。

你要找的GnuPG的命令行是

gpg2 --homedir=~/.gnupg --always-trust=true --recipient="BlahBlah" --output /path/to/output_file --encrypt /path/to/file 

最後一個提示:的--always-trust=true組合和解決用戶ID的接收者是一個非常糟糕的主意,因爲使用相同的用戶的任何其他關鍵可以使用本地密鑰環中的ID。代之以傳遞全密鑰的指紋,它專門選擇不同的密鑰(using short key IDs is not secure, either)。