Назад | Перейти на главную страницу

Как мне организовать загрузку ключа ssh с парольной фразой и доступность в ssh-agent для других процессов при запуске Windows?

Я настраиваю автоматическое развертывание приложений в среде Windows из непрерывной интеграции (агенты сборки TeamCity) и использую cygwin + openssh для выполнения части удаленного выполнения - в основном я использую capistrano ruby ​​с кучей настраиваемых задачи.

Поскольку build-agent работает на коробке как служба Windows, он не имеет заголовка. Поле не находится рядом с пользователем, вошедшим в систему, поэтому у пользователя нет возможности ввести ключевую фразу, когда (например) в противном случае может быть загружена цепочка для ключей или конкурс.

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

Кто-нибудь может сказать мне, что это такое? :-)

Обновить:

SSH в среде Windows - необычный вариант. Большинство людей использовали бы WMI для развертывания приложений и управления удаленными системами. Jenkins-CI (ранее Hudson-CI) отлично использует WMI для этой цели, так что поищите там примеры.

Но вы используете SSH, поэтому я рекомендую вам генерировать ключи SSH без паролей.

Будет труднее найти или угадать (незашифрованные) ключи SSH по сравнению с кражей или угадыванием обычного пароля.

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

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

Если ваши (открытые?) Узлы подключаются через SSH к центральному серверу для обновлений приложений, рассмотрите возможность использования ForcedCommand и ChrootDirectory, чтобы ограничить объем данных, доступных злоумышленнику, который пытается использовать узел приложения для атаки на ваш золотой хост.