Скрипт из этой заметки позволит вам раскидать SSH-ключ по списку серверов, чтобы не вводить ssh-copy-id для каждого сервера вручную. А как создать SSH-ключ вы можете узнать в заметке Как клонировать Git репозиторий через SSH, пункт “Приступаем к созданию SSH ключей”.
Создадим список всех серверов в файле:
$ nano server.list
192.168.0.100
192.168.0.101
...
Установим sshpass чтобы постоянно руками не вводить пароль:
# apt-get install sshpass
Маленький скрипт, который будет раскидывать ключи:
$ nano script.sh
#!/bin/bash
while read -r line
do
echo "running $line"
sshpass -p <пароль> ssh-copy-id <имя_пользователя>@$line -o "StrictHostKeyChecking no"
done < "server.list"
Запускам скрипт:
$ sh script.sh
И получаем следующий вывод скрипта:
running 192.168.0.100
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Number of key(s) added: 1
running 192.168.0.101
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
Number of key(s) added: 1