Пароль автоответчика для OPENSSL с использованием HEREDOC
У меня есть следующая команда, но она не работает для меня...
cd /etc/postfix/ssl/ && openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 <<PASS
password
password
PASS
ОБНОВИТЬ:
Выход:
109 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
...............................++++++
...........++++++
e is 65537 (0x10001)
Enter pass phrase for smtpd.key:
Следует автоматически ответить на вопрос и поставить пароль автоматически.
Я всегда использую HEREDOC
для автоматизации моих вопросов и ответов на Bash и работать нормально...
В чем здесь проблема?
2 ответа
Как @Graeme сказал ЗДЕСЬ
Я могу сделать с heredoc так:
Я должен добавить -passout stdin
для openssl читать со стандартного ввода.
cd /etc/postfix/ssl/ && openssl genrsa -passout stdin -des3 -rand /etc/hosts -out smtpd.key 1024 <<PASS
password
PASSW
OpenSSL (и OpenSSH) принимает меры для чтения пароля непосредственно из терминала, а не из stdin, в качестве меры безопасности.
Однако существует множество способов предоставить пароли для OpenSSL. Проверьте man openssl
для раздела PASS PHRASE ARGUMENTS
,
Так что вы могли бы сделать:
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 -passout "pass:mypassword"
... но для man-страницы: "Поскольку пароль виден утилитам (например," ps "в Unix), эту форму следует использовать только там, где безопасность не важна"
Или вы могли бы сделать:
printf '%s\n' "$PASS" | {
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 -passout fd:3
} 3<&0
... который предположительно более безопасен, чем другие варианты, потому что пароль не будет отображаться в пс.