SSH - Ajout de touches de pub scripts
Je suis entré dans une situation où vous devez ajouter la clé SSH vers les nouveaux serveurs serveurs de succursale 350. La situation est simple parce que le serveur principal de la succursale a déjà accès, de sorte que vous zeditovat toutes les branches et ajouter une nouvelle clé.
Affectation:
- L'utilisateur root sur le nouveau serveur doit avoir accès sans mot de passe sur toutes les branches (ssh, scp), mais les branches ne lui démarche de retour
- L'agent utilisateur sur le nouveau serveur doit également avoir accès partout, l'agent utilisateur de la branche doivent être autorisés à accéder au nouveau serveur
Manuellement vraiment pas: D donc, comme toujours - le script. Probablement la plus simple script pour montrer et commenter. Pour exécuter le script, je soupçonne que nous avons généré des clés pour la racine, à titre de mandataire et sur des serveurs qui existent déjà authorized_hosts etc (communication, il y avait déjà en cours, mais avec un autre serveur).
#!/bin/sh if [ ! "$1" ] ; then echo "Zadejte lokalitu." exit 1 fi ### nejdriv pridame ROOT klic z HLAVNI_SERVER na POBOČKA (pokud již nebyl přidán) if (ssh "$1" "cat /root/.ssh/authorized_keys | grep root@HLAVNI_SERVER" >> /dev/null ); then echo "INFO: $1: ROOT klic root@HLAVNI_SERVER v authorized keys jiz obsazen"; else echo "OK: $1: pridavam ROOT klic root@HLAVNI_SERVER do authorized keys"; cat /root/keys/HLAVNI_SERVER_root.id_dsa.pub | ssh "$1" "cat - >> /root/.ssh/authorized_keys" fi; ### potom pridame AGENT klic z HLAVNI_SERVER na pobočku (pokud již nebyl přidán) if (ssh "$1" "cat /home/agent/.ssh/authorized_keys | grep agent@HLAVNI_SERVER" >> /dev/null ); then echo "INFO: $1: AGENT klic agent@HLAVNI_SERVER v authorized keys jiz obsazen"; else echo "OK: $1: pridavam AGENT klic agent@HLAVNI_SERVER do authorized keys"; cat /root/keys/HLAVNI_SERVER_agent.id_dsa.pub | ssh "$1" "cat - >> /home/agent/.ssh/authorized_keys" fi; ### nakonec pridame na HLAVNI_SERVER klic AGENT z POBOČKA (pokud již nebyl přidán) if (ssh "HLAVNI_SERVER" "cat /home/agent/.ssh/authorized_keys | grep $1" >> /dev/null ); then echo "INFO: HLAVNI_SERVER: AGENT klic s obsahem $1 v authorized keys jiz obsazen"; else echo "OK: HLAVNI_SERVER: pridavam AGENT klic pobocky $1 do authorized keys"; ssh "$1" "cat /home/agent/.ssh/id_dsa.pub" | ssh "HLAVNI_SERVER" "cat - >> /home/agent/.ssh/authorized_keys" fi; Ensuite, il suffit d'un second script avec un seul cycle, où nous avons une liste de serveurs de fichiers:
#!/bin/sh echo "Spoustim script na pridani klicu SSH na pobocky cat /data/pobocky.lst | while read line; do echo Pridavam na server$line.local prvni-script.sh $line done Signaler 





















