秘密鍵のパスワードを削除しようとしています。手動では簡単です。次のコマンドを実行し、パスワードを入力します。openssl rsa <newkey.pem > newkey-no-password.pem
実際にパスワードを入力する必要がないように、予想されるスクリプトでこれを実行しようとしています。私が書いたコードは次のとおりです。
#!/usr/bin/expect -f
set PASSWORD myPassword
spawn openssl rsa <newkey.pem > newkey-no-pass.pem
expect "Enter pass phrase:"
send "$PASSWORD\r"
expect eof
以下は、スクリプトを実行したときに得られる出力です。
[me@mymachine]# ./test.exp
spawn openssl rsa <newkey.pem > newkey-no-pass.pem
unknown option <newkey.pem
rsa [options] <infile >outfile
... all the options for rsa command ...
パッティングや間に入れてみました<newkey.pem
が役に立ちませんでした。'
"
私は何が間違っていて、どのように解決できますか?
ベストアンサー1
spawn
私はコマンドがシェルリダイレクトを解決するとは思いません<
。以下を使用してシェルに渡して動作させることができますsh -c
。
#!/usr/bin/expect -f
set PASSWORD myPassword
spawn sh -c "openssl rsa <newkey.pem > newkey-no-pass.pem"
expect "Enter pass phrase:"
send "$PASSWORD\r"
expect eof
これは私にとって効果的です。
# expect -f kkf
spawn sh -c openssl rsa <newkey.pem > newkey-no-pass.pem
Enter pass phrase:myPassword
writing RSA key