我想对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