在 Amazon Linux2 实例中,Open SSL 抛出未知选项“-n”

在 Amazon Linux2 实例中,Open SSL 抛出未知选项“-n”

我的代码到达这一行时抛出错误:

{% set encrypted_password = salt['cmd.run']('openssl enc -aes-128-cbc -a -salt -md md5 -in <(echo -n "' + ssm_plaintext_password +'") -pass pass:'+random_password) %}

错误:

[ERROR   ] Command '[u'openssl', u'enc', u'-aes-128-cbc', u'-a', u'-salt', u'-md', u'md5', u'-in', u'<(echo', u'-n', u'g0vknM6a%,)', u'-pass', u'pass:zHwhIwKesJVXZO9taCHuEVGSPTW3J95g']' failed with return code: 1
[ERROR   ] stdout: unknown option '-n'

但是当我运行命令时openssl enc -aes-128-cbc -a -salt -md md5 -in <(echo -n "g0vknM6a%,") -pass pass:zHwhIwKesJVXZO9taCHuEVGSPTW3J95g它为我提供了输入。

我正在执行这个亚马逊Linux2基于实例具有Python3salt-call 2019.2.0(氟)。这是由于任何二进制版本的变化,因为此代码完美地与亚马逊 Linux1

答案1

我在这里找到了解决方案:https://github.com/saltstack/salt/issues/44226

我用 cmd.shell 替换了 cmd.run,这对我来说很好用。

答案2

python_shell=True选项添加到cmd.run

相关内容