Я пытаюсь скопировать .ssh / id_rsa.pub с нашего центрального сервера на несколько серверов. У меня есть следующий скрипт, который я обычно использую для отправки изменений на разные серверы.
#!/bin/bash
for ip in $(<IPs); do
# Tell the remote server to start bash, but since its
# standard input is not a TTY it will start bash in
# noninteractive mode.
ssh -q "$ip" bash <<-'EOF'
EOF
done
Но в этом случае мне нужно отследить открытый ключ на локальном сервере, а затем добавить его на несколько серверов. Есть ли способ с помощью приведенного здесь скрипта документа, чтобы выполнить следующее.
cat .ssh/id_rsa.pub |ssh tony@0.0.0.0 'cat > .ssh/authorized_keys'
shell-script
ssh
user67186
источник
источник
Ответы:
С помощью этого простого цикла вы можете автоматизировать его и распространить на все удаленные серверы.
источник
Вот мой простой скрипт для копирования ssh-keygen на несколько серверов без запроса пароля каждый раз.
источник
Принятый ответ не сработает, если нужно поместить чужой открытый ключ на несколько машин. Итак, я пришел к следующему решению:
cat add-vassal-tc-agents.sh
Этот сценарий добавляет новый ключ пользователям в списке машин при условии, что среда, на которой он работает, имеет доступ.
Пример
tc-agents-list.txt
:источник
Для копирования вашего открытого ключа у вас есть что-то встроенное в сам openssh. Так что вместо этого
cat
иssh
используйте это:источник
Вы можете сделать это с помощью простого цикла while и списка встроенных серверов, например:
Наличие списка внутри скрипта избавляет от отдельных файлов данных, которые могут оказаться неуместными.
источник
ssh-copy-id
уже было предложено в некоторых других ответах.Предполагается, что у вас есть файл со списком IP-адресов серверов, именем SERVER и определены только IP-адреса серверов.
Это для цикла будет работать также.
источник