次のコマンドを使用して、リモートサーバーの証明書ファイルに証明書を追加しようとします。
openssl s_client -connect host:port | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | minikube ssh 'sudo su - && cat >> /etc/ssl/certs/ca-certificates.crt'
ただし、リモートホストはリモートファイルにテキスト行を追加するのではなく、テキスト行を評価しようとすると、次のエラーメッセージが表示されます。
-sh: line 1: -----BEGIN: command not found
-sh: line 2: MIIGETCCA/mgAwIBAgIQBNtwjkSfT+QGafgAnqb9JDANBgkqhkiG9w0BAQsFADBK: No such file or directory
-sh: line 3: MQswCQYDVQQGEwJOTDEdMBsGA1UEChMUS29uaW5rbGlqa2UgS1BOIE4uVi4xHDAa: command not found
-sh: line 4: BgNVBAMTE0tQTiBOLlYuIFByaXZhdGUgQ0EwHhcNMTYwNzI4MDAwMDAwWhcNMTkw: command not found
-sh: line 5: NzI4MjM1OTU5WjCBhDELMAkGA1UEBhMCTkwxFTATBgNVBAgMDFp1aWQgSG9sbGFu: command not found
.
.
.
-sh: line 35: -----END: command not found
この行が評価され、リモートファイルに追加されないようにするにはどうすればよいですか?ありがとうございます!
答え1
sudo su -
コマンドへの入力として証明書を提供するので、それをシェルコマンドとして実行しようとします。実際に望むのは、cat
次のコマンドを実行することですsudo
。
openssl s_client -connect host:port |
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' |
minikube ssh 'sudo bash -c "cat >> /etc/ssl/certs/ca-certificates.crt"'