SSH - Добавен скрипт кръчма ключове
Имам в една ситуация, в която трябва да добавите SSH ключ към нови сървъри 350 клон сървъри. Ситуацията е проста, тъй като основният сървър в клона вече има достъп, така че zeditovat всички клонове и добавяне на нов ключ.
Задача:
- Коренът потребител на новия сървър трябва да има достъп без парола за всички клонове (SSH, SCP), но клонове не го подход обратно
- Потребителят агент на нов сървър трябва да има достъп навсякъде, потребителят агент на клона, трябва да се разреши достъп до новия сървър
Ръчно наистина не: D така, както винаги - на скрипта. Вероятно най-лесният скрипт, за да показват и коментират. За да стартирате скрипт, аз подозирам, че ние имаме генерирани ключове за корен, като представител и на сървъри, които вече съществуват authorized_hosts и т.н. (комуникация имаше вече в ход, но с различен сървър).
#!/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; След това само за секунда скрипт с един цикъл, където имаме списък с файлови сървъри:
#!/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 





















