Как установить сертификат SSH на >400 серверов?

Как установить сертификат SSH на >400 серверов?

Чтобы не вводить пароль при выполнении каких-либо действий на любом из этих серверов, мне нужно загрузить свой сертификат SSH на удаленный сервер:

ssh-copy-id CptBartender@remote

Теперь... Мне нужно загрузить этот сертификат на более чем 400 серверов, и я пытаюсь найти способ не вводить/не вставлять свой пароль так много раз.

Вопрос: как автоматизировать это на Windows (с MinGW)? Cygwin, скорее всего, не вариант, потому что он, похоже, находится за великим корпоративным файрволом из ада.

На данный момент я:

  1. создал скрипт, который будет перебирать все пульты, но он запрашивает пароль для каждого из них
  2. пробовал передать пароль, но yesбезрезультатно
  3. читал о expect, но не смог найти способ заставить его работать на MinGW
  4. читать о sshpass- то же самое, что иexpect

Я думал об AutoItэтом, но должен быть способ получше...

решение1

PuTTY plinkможет принимать пароль как параметр командной строки. Прямого эквивалента у него нет ssh-copy-id, но его можно легко заскриптовать, например, запустив команды вручную...

plink foo@bar -pw baz "mkdir -p ~/.ssh && echo 'ssh-ed25519 AAAA...' >> ~/.ssh/authorized_keys"

...или загрузив файл с расширением pscp.


Кроме того, если expectне получится работать на Windows, наверняка вы сможете запустить его на одном из этих 400 серверов Linux?

(Кроме того, учитывая цифры, возможно, вам стоит рассмотреть возможность извлечения ключей из LDAP или использования AD/Kerberos? В последних версиях OpenSSH есть возможности для интеграции с LDAP без необходимости установки сторонних исправлений.)

решение2

Вы можете поискать инструмент Putty plink, как упоминалось выше. Или вы можете подумать об использовании одной из систем управления конфигурацией, например Puppet, Ansible или Chef в будущем. Вы можете использовать любую из них, чтобы добавить сертификат на все ваши серверы в кратчайшие сроки.

Ищете номера серверов? Я думаю, вам стоит серьезно задуматься. Они могут использоваться для большинства рутинных задач по администрированию серверов, включая управление пользователями, файлами и каталогами, а также программное обеспечение.

Связанный контент