автоматически входящий пароль в команде openssl

Я пишу сценарий, который автоматически вводит вход пользователя для команды openssl, но я не могу найти способ ввести необходимый пароль автоматически сценарием. Что я попробовал:

spawn sudo openssl x509 -req -in client.csr -CA /etc/mosquitto/ca_certificates/ca.crt -CAkey /etc/mosquitto/ca_certificates/ca.key -CAcreateserial -out client.crt -days 15; 
expect 'Enter pass phrase for /etc/mosquitto/ca_certificates/ca.key:'
send '1234\n'

Не работает (мечите икру и отправьте не найденный),

printf '1234\n' | sudo openssl x509 -req -in client.csr -CA /etc/mosquitto/ca_certificates/ca.crt -CAkey /etc/mosquitto/ca_certificates/ca.key -CAcreateserial -out client.crt -days 15; 

Не работает, остается ожидающим пароля, и программы никогда не заканчивается, если я не вхожу '1234' вручную.

В других случаях это работает с printf:

printf 'ES\n\n\n\n\nclient'$n'\n\n\n\n' | sudo openssl req -out client.csr -key client.key -new; 

Мое предположение - то, что printf не работает, если вход он скрыт. Какие-либо идеи?

0
задан 22 March 2020 в 15:05

1 ответ

Найденный способом сделать это без использования ожидает:

В основном необходимо включать --passin pass:'your_passphrase' в команде

Например: sudo openssl x509 -req -in client.csr -CA /etc/mosquitto/ca_certificates/ca.crt -CAkey /etc/mosquitto/ca_certificates/ca.key -CAcreateserial -out client.crt --passin pass:1234 -days 15;

Источник

Существуют другие способы сделать его, такие как загрузка файла паролей, который более безопасен, как обсуждено здесь

0
ответ дан 22 March 2020 в 23:20

Другие вопросы по тегам:

Похожие вопросы: