execute cat via ssh, envie texto ou arquivo via ssh

execute cat via ssh, envie texto ou arquivo via ssh

Saudações estou fazendo um script para automatizar o envio de chaves públicas mas não consigo enviar meu arquivo ou variável via ssh seja por "echo ou cat"

Responder1

Se quiser enviar um arquivo para um servidor remoto, você pode usar scp.

Do homem scp:

scp copia arquivos entre hosts em uma rede. Ele usa ssh(1) para transferência de dados, usa a mesma autenticação e fornece a mesma segurança que ssh(1). Ao contrário do rcp(1), o scp solicitará senhas ou frases secretas se forem necessárias para autenticação.

Uso básico:

scp user@origin:/path/to/file user@target:/path/to/file

Supondo que você queira transferir example.txt do diretório atual para um controle remoto SERVERcom o mesmo nome em uma pasta chamada exemplo autenticando como root:

scp example.txt root@SERVER:/example/example.txt

Responder2

Para transferir chaves públicas para servidores remotos, existe um utilitário dedicado para issossh-cópia-id.

Você encontrará acima um script que pode usar para automatizar esta tarefa:

#!/bin/sh
while read server ; do
   timeout 10 ssh-copy-id -i <public_key_path> <user>@$server
done < <list_of_servers.txt>

PS: Substitua as constantes entre <> pelos seus próprios valores.

Responder3

Você pode usar sshpassem seu script para acessar o servidor sem digitar a senha todas as vezes como:

sshpass -p 'PASSWORD' ssh USER@SERVER ssh-copy-id USER@SERVER

você também pode usar -fpara escrever a senha em um arquivo se não quiser escrevê-la na linha de comando (está em texto não criptografado em ambos os casos) para uma lista de servidores chamada servidores.list

for SERVER in $(cat servers.list)
do
sshpass -p 'PASSWORD' ssh USER@$SERVER ssh-copy-id USER@$SERVER
done

informação relacionada