다음 명령을 사용하여 원격 서버의 인증서 파일에 인증서를 추가하려고 합니다.
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"'