como escrever algum texto em um arquivo em uma máquina diferente

0

Eu tenho 2 machine machine1 e machine2.

Eu quero escrever a partir de gravar alguns conteúdos em arquivo em machine2 de machine1.

Em uma mesma máquina, posso executar sudo cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys para gravar o conteúdo de ~/.ssh/id_dsa.pub no arquivo ~/.ssh/authorized_keys .

Mas eu quero o conteúdo de ~/.ssh/id_dsa.pub machine1 no arquivo ~/.ssh/authorized_keys em machine2. Eu posso fazer ssh e fazer isso. Desde que eu estou instalando hadoop em um modo silencioso em um único comando com nome de usuário e senha.

Eu não quero fazer scp , que substitui todo o arquivo.

Como posso fazer isso em um único comando fornecendo com nome de usuário / senha de outra máquina?

    
por Rajkumar Natarajan 12.11.2018 / 00:37

2 respostas

3

Você pode fazer algo assim:

cat ~/.ssh/id_dsa.pub | ssh machine2 'cat >> ~/.ssh/authorized_keys'

Mas você provavelmente deve usar ssh-copy-id , que é uma ferramenta com esse objetivo exato:

ssh-copy-id machine2

ou

ssh-copy-id id_dsa machine2
    
por 12.11.2018 / 00:45
4

O comando ssh captura stdin local e também pode executar comandos externos. Se você combinar esses dois fatos, isso se tornará possível:

ssh machine2 tee -a "~/.ssh/authorized_keys" < ~/.ssh/id_dsa.pub

Existe também um comando chamado ssh-copy-id destinado a automatizar este processo. Você pode ver man ssh-copy-id para mais informações.

    
por 12.11.2018 / 00:45