在martinstoeckli詢問了「爲什麼你不能使用密鑰解密文件?」這個明顯的問題後,我想我已經想到了一個黑客,但顯然它實際上廣泛使用後谷歌搜索 - 我的解決方案在這裏涉及使用密鑰對和密碼。
注:我生成的臨時文件夾中的密鑰對,否則這個密鑰對將存在於他們產生PC上的鑰匙串,我不希望這樣,所以我加--homedir /tmp/gnupg
我生成一個密碼 - 用GPG密鑰對少 - 這是我打字:
mkdir /tmp/gnupg
gpg --homedir /tmp/gnupg --full-gen-key
(1) RSA and RSA (default)
4096
0
y
mark
[email protected]
this key is used for protecting config files
o
然後導出私鑰,私鑰和ownertrust
gpg --homedir /tmp/gnupg --armor --export [email protected] > gpg_keyfile.pub
gpg --homedir /tmp/gnupg --armor --export-secret-keys [email protected] > gpg_keyfile.priv
gpg --homedir /tmp/gnupg --export-ownertrust > gpg_ownertrust.txt
rm -rf /tmp/gnupg
這足以加密和解密文件機智一旦密鑰導入到GPG的鑰匙串中,就會發送密碼。
接下來是密碼保護私鑰,所以沒有密碼,沒有人可以使用它。 gpg -c --batch --passphrase password1234 gpg_keyfile.priv
當心:GPG不會刪除原始文件,因此加密時,記得刪除原始文件,如果有必要
然後我就可以全部3個文件添加到資料庫(gpg_keyfile.pub gpg_keyfile.priv.gpg gpg_ownertrust.txt - NOT gpg_keyfile.priv!
)。
1:
要在其他機器上的加密文件中導入公共文件和ownertrust
gpg --import gpg_keyfile.pub
gpg --import-ownertrust gpg_ownertrust.txt
2:使用加密的公鑰
gpg -e -r [email protected] configfile.ini
configfile.ini.gpg現在應該存在於文件,可以承諾回購
現在,當想要再次解密一個文件時,有幾個額外的環節可以跳過來確保系統不保存私鑰。
1:首先,私鑰密碼保護,因此將私鑰解密:
gpg --batch --passphrase password1234 gpg_keyfile.priv.gpg
2:然後創建一個臨時GPG目錄
mkdir /tmp/gnupg
3:導入私鑰來臨時鑰匙扣
gpg --homedir /tmp/gnupg --import gpg_keyfile.priv
4:使用臨時鑰匙扣,現在持有私鑰解密文件
gpg --homedir /tmp/gnupg configfile.ini.gpg
5:一定要立即刪除臨時鑰匙扣和私鑰
rm -rf /tmp/gnupg gpg_keyfile.priv
這對我的作品,現在我可以克隆的git分支到一個新的系統,輕鬆設置我的應用程序和解密只具有密碼我的配置文件。
是否有原因,爲什麼你不能使用密鑰(文件)來解密文件?爲什麼它必須是密碼? – martinstoeckli
這是一個非常好的問題 - 我想 - 我們使用密碼管理器(Keepass)來分配密碼是多麼容易。 然而,它只是給了我一個黑客的想法...我可以使用密碼加密解密密鑰文件,並且作爲腳本的一部分,使用密碼解密密鑰文件,然後使用密鑰文件解密其他文件...我意識到這聽起來有多瘋狂,但它可能工作:o –
如果您可以使用密鑰文件而不是密碼,則可以使用公鑰/私鑰對。然後您可以使用公鑰加密文件,並使用私鑰解密文件。在這種情況下,不需要將私鑰泄露給任何人,只需將公鑰交給其他開發人員即可。 – martinstoeckli