我想對S3一些環境變量存儲在加密的shell腳本(所以這些密鑰不存儲我的驅動器加密),像這樣:從gpg加密的shell腳本設置環境變量?
export AWS_ACCESS_KEY_ID="example_key_id"
export AWS_SECRET_ACCESS_KEY="example_secret_access_key"
這被保存爲一個shell腳本setenv.sh
我已經加密爲setenv.sh.gpg
。
我試圖運行文件腳本eval $(gpg --decrypt ./setenv.sh.gpg)
解密文件,但不加載相應的環境變量(一個printenv證實了這一點)。
我覺得它可能有一些與此有關的問題:Shell script to set environment variables
不過,我已經嘗試了一些不同的變化與source
無濟於事,因爲我認爲source
期望一個文件,而不是內容一個腳本。
我該如何使用gpg加密的shell腳本來設置環境變量?
[進程替換](http://www.gnu.org/software/bash/manual/bash.html#Process-Substitution)在Bash可能會這樣做;在Zsh中可用嗎? '源<(gpg --decrypt ./setenv.sh.gpg)'。安全性是否如此虛幻?什麼是阻止您的用戶運行GPG命令並查看輸出? – 2015-04-05 14:28:36
我想這樣設置腳本的原因是我可以爲不同的項目加載不同的S3鍵,而不必每次都手動輸入它們。安全方面,我認爲這是一個好主意,以防筆記本電腦被盜或被盜用。 (我有完整的磁盤加密,但它也可能被盜取,而解鎖等) – waffl 2015-04-06 08:20:23
我認爲它可以作爲'安全通過默默無聞',但只要你認識到,並意識到它的侷限性,沒有很大的傷害。特別是,在我看來,你不應該依靠這個來保證一切安全。 – 2015-04-06 13:38:04