

shellscript初心者です。

OpenVPN用にeasy-rsaでクライアント証明書を作る時に、これをshellscriptで実行できるようにすべく、以下のコードを書きました。

[code]

    #!/bin/bash
    expect -c "
    set timeout 5
    spawn env LANG=C /etc/openvpn/easy-rsa/pkitool --pass test_client01
    expect \"Enter PEM pass phrase:\"
    send \"hoge\"
    expect \"Verifying - Enter PEM pass phrase:\"
    send \"hoge\"
    "
    
[/code]

通常このコマンドを実行すると ./keys/以下に `test_client01.crt` , `test_client01.key` ,
`test_client01.csr` 三つのファイルが生成されるはずなのですが、上記のコマンドを実行して作成すると、なぜか .key
ファイルしか生成されません。

最終的にはパスワードを100個ほど書いたファイルをぶん回してクライアント証明書を複数楽に作れるようにする予定です。

もしかしたらshellではなくeasy-rsa側の知識の不足かもしれないのですが、コードでおかしいところがあればご指摘いただきたいです。


CC BY-SA 4.0
2018-05-10T04:05:01.547
43901
2020-06-11T14:01:35.167
2018-05-11T00:56:41.130
3060
19397
question
bash shellscript expect vpn
シェルスクリプトでeasy-rsaのクライアント証明書を生成できるようにしたい


パスワードの最後に改行が必要だと思いますので、

[code]

    send \"hoge\"
    
[/code]

は、

[code]

    send \"hoge\\r\"
    
[/code]

だと思います。


CC BY-SA 4.0
2018-05-13T01:22:24.153
43948
2018-05-13T01:22:24.153
5288
43901
answer