Question Comment copier id_dsa.pub


J'essaie de créer un serveur de sauvegarde pour des centaines (500) de serveurs cloud qui utilisent tous iptables et qui limitent les connexions ssh aux adresses IP de nos sociétés uniquement.

Toutes les sauvegardes iraient sur un "serveur" de cloud central, les hôtes sont situés dans des régions ou des centres de données différents et fonctionnent scp ou ssh_copy_id ou similaire en se connectant à chacun serait un cauchemar fastidieux.

Puis-je exporter la clé et l'utiliser dans un "script de type d'installation" depuis un serveur local vers tous les serveurs qui copieraient ensuite l'ID ssh pour une connexion sans mot de passe et installer le script cron + pour les sauvegardes automatisées?


3
2017-12-21 20:57


origine




Réponses:


J'utiliserais la marionnette, parfaite pour ajouter des fichiers, des clés ou des paramètres à plusieurs machines. https://puppet.com/solutions/cloud-management


1
2017-12-21 21:23





Les commandes parallel-scp et parallel-ssh du package pssh peuvent également constituer une solution plus simple. Vous conservez simplement les adresses IP de l'hôte dans un fichier à transmettre en tant que paramètres hôte. La première fois que parallèle-scp copiera la clé publique dans ~ / .ssh / authorized_keys sur chaque serveur et dans les exécutions suivantes, vous pourrez accéder aux serveurs via parallel-ssh.


0
2017-12-21 21:57



J'ai un script qui boucle la commande scp avec un fichier contenant tous les mots de passe ip et root, par exemple pour lancer des mises à jour de fichiers, mais pssh est une idée intéressante en général, si je copie la clé ssh dossier à un serveur local en tant que fichier non pas dans le but d'installer la clé, mais pour distribuer ou "copier" le fichier à d'autres hôtes pour qu'ils puissent l'utiliser comme clé ssh, cela fonctionnera. ce qui signifie que si je zip /root/.shh/id_dsa.pub ou ajouter la chaîne de clé à un script qui crée le fichier de clé cela fonctionnerait. quelque chose comme cat <<EOF keystringEOF - Moshe S


La méthode la plus simple est d'utiliser un script avec sshpass et un utilisateur limité en guise de solution provisoire, tandis que nous évaluons une solution de «déploiement automatique». Le script est en dessous Merci et bonnes vacances

#!/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/*

0
2017-12-22 16:01