SSH経由でリモートファイルに接続すると、1行ずつ拡張されます。

SSH経由でリモートファイルに接続すると、1行ずつ拡張されます。

次のコマンドを使用して、リモートサーバーの証明書ファイルに証明書を追加しようとします。

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"'

おすすめ記事