在不解密的情况下执行GPG加密的shell文件

3

我有一个包含100行代码的shell脚本,用于执行一些敏感业务逻辑。我使用GPG加密对该文件进行了加密,现在我想像执行原始shell文件一样执行加密文件。

基本上,我希望在不解密的情况下执行shell文件内容,以便该文件的用户不能看到shell文件中的代码,但应该能够执行它。

我已经尝试过:

decrypted=$(gpg -d ...)

eval "$decrypted"

但是对于大文件来说,这种方法并不起作用。

1
如果“decrypted”包含正确(完整)的脚本,则可以将其拆分为行或块,并针对每个块单独调用eval。 - Eugene Mayevski 'Callback
你能详细说明一下“没有起作用”的意思吗?我建议添加-x标志,这样你就可以找出它在哪里出错了。你可能会发现引用或转义问题,因为你只是评估从字符串中提取的代码。 - jane arc
1个回答

3
我在使用以下内容:

我在使用以下内容:

$ bash < <(gpg -qd script.sh.gpg 2>/dev/null)
或者
$ gpg -qd script.sh.gpg 2>/dev/null | bash -


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接