Установить пакет sshpass
Подготовьте файл с паролями:
Создайте файл, например servers.txt, в котором каждый сервер и пароль будут записаны в формате:
Код: Выделить всё
user@hostname:password
Код: Выделить всё
user1@server1.com:password1
user2@server2.com:password2
Код: Выделить всё
IFS=:
Код: Выделить всё
#!/bin/bash
# Путь к файлу с паролями
PASSWORD_FILE="servers.txt"
# Путь к вашему публичному SSH ключу
PUBLIC_KEY_FILE="$HOME/.ssh/id_rsa.pub"
# Проверка, существует ли файл с паролями
if [ ! -f "$PASSWORD_FILE" ]; then
echo "Файл с паролями не найден!"
exit 1
fi
while IFS=: read -r login password; do
# Используем sshpass для добавления ключа
sshpass -p "$password" ssh-copy-id -o StrictHostKeyChecking=no "$login" < "$PUBLIC_KEY_FILE"
done < "$PASSWORD_FILE"