cat [file ..] canaliza outro comando cat

2
cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

alguém pode explicar como as citações funcionam.

Pelo que entendi. Eu estou lendo a chave pública no meu disco, em seguida, canalizando-o para o servidor, fazendo um diretório, se ele não existe e, em seguida ... estou usando esta segunda concatenação para ler do meu disco? o que está sendo concatenado?

Fica confuso porque estou acostumado a ver um arquivo após o comando cat.

    
por Rolan Pichler 17.01.2016 / 15:55

1 resposta

1

O comando cat é capaz de concatenar arquivos e imprimi-los na saída padrão.
Quando é invocado sem especificar nenhum arquivo ou com - , ele lê a entrada padrão.
Em seu comando é usado nas duas maneiras.

Passo a passo:

  • A primeira parte do seu comando ( cat ~/.ssh/id_rsa.pub ) faz exatamente o que você entendeu: ele imprime o arquivo local ~/.ssh/id_rsa.pub na saída padrão.
  • Em seguida, com o símbolo | , você redireciona a saída padrão local como entrada padrão para o comando a seguir ( ssh ).
  • O comando ssh praticamente fará executar o comando dentro da string "" na máquina remota passando a entrada padrão do pipe.
  • Dentro da string:
    • Você criará o diretório ~/.ssh e, graças à opção -p , não gerará erro se o diretório existir.
    • Com o operador && , você executará o seguinte cat apenas se o mkdir anterior sair sem erros.
    • O último cat >> ~/.ssh/authorized_keys é uma invocação de cat sem arquivo . Sua saída será anexada (se possível) ao arquivo ~/.ssh/authorized_keys graças ao operador de redirecionamento ( >> ).

Notas:

  • Em muitos sistemas, existe o comando ssh-copy-id para copiar as chaves locais na máquina remota. Para mais informações, digite man ssh-copy-id

    ssh-copy-id — use locally available keys to authorise logins on a remote machine

  • Como afirmado por roalma no comentário, a linha de comando original pode funcionar ou não dependendo das configurações (restritivas) da configuração ssh .

por 17.01.2016 / 17:56

Tags