Command-Line

使用作為 CLI 參數傳遞的密鑰使用 GPG 進行加密

  • January 27, 2021

我想創建一個腳本,它會自動加密並推送到 GitHub 到公共儲存庫中一些我不想公開的合理文件(但確實想與整個項目保持一致)。

作為解決方案,我決定使用 GPG 對它們進行加密。問題是我找不到任何關於如何使用作為 CLI 參數傳遞給gpg -c命令的密碼來加密特定文件的線索。

有人知道怎麼做這個嗎?

在批處理模式下使用--passphrase-...選項之一:

  • --passphrase-fd從給定的文件描述符中讀取密碼
 echo mysuperpassphrase | gpg --batch -c --passphrase-fd 0 file
  • --passphrase-file從給定文件中讀取密碼
 echo mysuperpassphrase > passphrase
 gpg --batch -c --passphrase-file passphrase file
  • --passphrase使用給定的字元串
 gpg --batch -c --passphrase mysuperpassphrase file

這些都filefile.gpg使用mysuperpassphrase.

對於 GPG 2.1 或更高版本,您還需要將 PIN 輸入模式設置為“環回”:

gpg --batch -c --pinentry-mode loopback --passphrase-file passphrase file

等等

解密可以以類似的方式執行,使用-d代替-c,並重定向輸出:

gpg --batch -d --passphrase-file passphrase file.gpg > file

等等

引用自:https://unix.stackexchange.com/questions/330305