Como copiar id_dsa.pub

3

Estou tentando criar um servidor de backup para centenas (500+) de servidores em nuvem que usam iptables que limitam as conexões ssh apenas aos IPs de nossas empresas.

Todos os backups iriam para um "servidor" da nuvem central, os hosts estão localizados em diferentes regiões ou datacenters e a execução de scp ou ssh_copy_id ou similar, fazendo login em cada um deles seria um pesadelo tedioso.

Posso exportar a chave e usá-la em um "script de tipo de instalação" de um servidor local para todos os servidores que copiariam o id ssh para login sem senha e instalar o script cron + para os backups automatizados?

    
por Moshe S 21.12.2016 / 21:57

3 respostas

1

Eu usaria fantoche, perfeito para adicionar arquivos, chaves ou configurações para várias máquinas. link

    
por 21.12.2016 / 22:23
0

Os comandos parallel-scp e parallel-ssh do pacote pssh também podem ser uma solução mais simples. Você simplesmente mantém o IP do host em um arquivo para passar como parâmetros do host. A primeira vez que scp paralelo irá copiar a chave pública para ~ / .ssh / authorized_keys em cada servidor e em execuções subseqüentes, você pode acessar os servidores através de ssh-paralela.

    
por 21.12.2016 / 22:57
0

Descobri que a maneira mais fácil de usar é um script com sshpass e um usuário limitado como uma solução temporária, enquanto avaliamos uma solução de "implantação automática". Script está abaixo Obrigado e Boas Festas

#!/bin/bash
now=$(date +"%Y-%m-%d")
PATH=/usr/sbin:/sbin:/usr/bin:/bin
ServerIP='ifconfig | grep -A1 "Link encap:Ethernet" | grep -v "Link encap:Ethernet" | cut -d":" -f2 | cut -d" " -f1 | egrep '([1-2]?[0-9]{0,2}\.){3,3}[1-2]?[0-9]{0,2}''
echo "ServerIP is:$ServerIP" > /dev/null

if ! rpm -qa | grep -qw sshpass; then

yum -y install sshpass rsync

elif [ ! -d "/tmp/backup" ] ; then

mkdir -p /tmp/backup && chmod -R 777 /tmp/backup

else

cp -u /etc/sysconfig/iptables /tmp/backup
cp -Ru /var/..../custom/ /tmp/backup
cp -Ru /var/..../somestuff/ /tmp/backup
mysql -uroot -pmysqlpassword < /root/backup.sql

fi

zip -r /tmp/backup/'hostname'_"$ServerIP"_"$now"_Backup.zip /tmp/backup/
rsync -avzh -e "sshpass -p verylongpassword ssh" /tmp/backup/*Backup.zip user@ServerIP:/backups/
rm /tmp/backup/*
    
por 22.12.2016 / 17:01