anexando ao arquivo remoto por SSH leva à expansão linha por linha

0

Estou tentando anexar um certificado ao arquivo de certificados de um servidor remoto, usando o comando folliwing

openssl s_client -connect host:port | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | minikube ssh 'sudo su - && cat >> /etc/ssl/certs/ca-certificates.crt'

No entanto, parece que o host remoto tenta avaliar as linhas de texto, em vez de anexá-las ao arquivo remoto, levando às seguintes mensagens de erro:

-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

Como posso evitar que as linhas sejam avaliadas e apenas adicioná-las ao arquivo remoto? Obrigado!

    
por dnikolos 02.03.2017 / 12:38

1 resposta

2

Você está alimentando o certificado como entrada para os comandos sudo su - , por isso está tentando executá-lo como comandos shell. O que você realmente quer fazer é executar o comando cat com 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"'
    
por 02.03.2017 / 16:59