Como copiar id_dsa.pub

2

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 iria para uma nuvem central "servidor", os anfitriões estão localizados em diferentes regiões ou centros de dados e em execução scpou ssh_copy_idou similar, entrando em cada uma seria um pesadelo tediosa.

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

Moshe S
fonte

Respostas:

0

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

Serhat Cevikel
fonte
Eu tenho um script que faz o loop do scp com um arquivo que contém todas as senhas de IP e raiz para outros fins, como atualizar atualizações de arquivos que não são o problema, embora o pssh seja uma ideia interessante em geral, a questão é se eu copiar a chave ssh pasta para um servidor local como um arquivo, não com o objetivo de instalar a chave, mas para distribuir ou "copiar" o arquivo para outros hosts, para que eles usem como chave ssh. ou seja, se eu zipar /root/.shh/id_dsa.pub ou adicionar a string de chave a um script que cria o arquivo de chave, isso funcionaria. algo parecido comcat <<EOF keystringEOF
Moshe S
0

Eu achei a maneira mais fácil de ir é 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". O 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/*
Moshe S
fonte