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

0

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

ssh-copy-id CptBartender@remote

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

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

Пока что я:

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

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

CptBartender
источник
Это не мое дело - эти серверы являются «игрушками» другого департамента, и, хотя здравый запрос / решение не пройдут. Пароли синхронизируются через LDAP, но профили (и сертификаты расширения) не ... не знаю, как это работает внутри, я сам не являюсь администратором.
CptBartender
Вы не должны быть ограничены MinGW. ActiveState Tcl содержит ожидаемое в виде пакета: docs.activestate.com/activetcl/8.5/expect4win/...
Gombai Sándor
Загрузка вашей машины из умного живого Linux (например, из того, что поставляется с установкой Ubuntu) и установка ожидаемого в ОС в памяти также возможны.
Gombai Sándor

Ответы:

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 без необходимости использования сторонних исправлений.)

grawity
источник
Это странная установка ... TL; DR Я не могу запустить ее с одного из них. Кроме того, я не являюсь администратором и не могу изменить конфигурацию LDAP для них ... а текущий только синхронизирует пароли. Я попробую с plink и посмотрим, что произойдет, хотя ...
CptBartender
0

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

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

Valentin
источник
Если бы на тех серверах было что-то, что зависело от меня ... Все это управляется другой командой, поэтому это не мое дело.
CptBartender