@Strixi

Как написать скрипт на bash для ansible чтоб автоматически разослать публичные ключи на машины?

Здравствуйте, нашел скрипт на Bash:
#!/bin/bash
for ip in `cat /home/list_of_servers`; do
    ssh-copy-id -i ~/.ssh/id_rsa.pub $ip
done

И его модернизируемую версию:
for server(оставляю переменную) in `cat server.txt`(создаю файл со списком сервером через enter);  
do  
    sshpass -p "password" (ввожу пароль от клиента) ssh-copy-id -i ~/.ssh/id_ed25519.pub $server  
done

Но в авторизованных ключах ничего не появляется. подскажите в чем может быть причина
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 3
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Не вижу тут никакого простора для баша. Копировать файл можно с помощью builtin-модуля copy, вам останется только перечислить хосты в inventory.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Продебажить что происходит, добавить echo внутри цикла?
Руками если выполнить ssh-copy-id работает?
Какую ошибку выдает?

ssh-copy-id достаточно тупая команда. может не учитывать текущие настройки sshd, например sshd настроен на authorized_keys2, а он пишет в authorized_keys

В общем проверить руками результат команды, проверить что внутри цикла.
Ответ написан
@Drno
Тут можно и без ансибла.
paralell-ssh например
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы