2016-01-24 4 views
3

У нас есть настраиваемая настройка сервера с нашим незаменимым кодом, хранящимся в репозиториях git. Все серверы, настроенные в настоящее время, используют SSH-ключ от нашего сервера управления для доступа. Однако я хотел бы включить ключ в альтернативный репозиторий git вместо него (зашифрованный в хранилище). Я хотел бы сделать это как:Ansible: могу ли я использовать ключ ssh, зашифрованный в хранилище?

1) Если бы наш незаменимый сервер когда-либо был взломан/имел неустранимый сбой жесткого диска/какой-либо другой сбой, нам не пришлось бы генерировать новый ключ ssh и копировать его на каждый анзибль сервер, прежде чем мы могли бы запустить анзибль задачи снова

2) Такое ощущение, что он должен быть в репозиториях, так как это часть установки/конфигурации, чтобы получить доступ к серверам

3) мы и другие данные, хранящиеся в хранилище и ввод одного пароля для хранилища, а другой для парольной фразы SSH - это боль

Мы рассмотрели кодировку пользовательской задачи чтобы сделать это, создав временный файл на диске, но похоже, что он должен быть встроен. Также мне нравится, как встроенное дешифрование содержит только файлы в ram. Другая проблема заключалась в том, что мы не смогли найти метод, который гарантированно будет выполняться в случае сбоя, и поэтому очистите созданный нами временный файл (вроде как обеспечить блок в программировании)

Есть ли безопасный способ использования сводчатого ключа ssh? Или, если это не так, просто попросите ssh passphrase заранее?

ответ

2

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

Чтобы избежать запроса пароля SSH каждый раз при использовании ssh-agent, который кэширует учетные данные в памяти и избегает подсказки. Я использую этот startup script в моей настройке, и он работает хорошо.

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

+0

Спасибо Дэйв. Я предполагаю, что это просто простой сервер без какой-либо другой работы, чем работающий, поэтому мы хотели сохранить его как можно проще, особенно в облаке (избегайте резервного копирования и т. Д.). На самом деле мы пошли только с одной учетной записью, хотя в ретроспективе я не знаю, почему. В любом случае трюк ssh-agent будет работать хорошо. Спасибо –

+0

Возможно, вы захотите ознакомиться с использованием пересылки агента SSH. Таким образом, разработчики/кто бы ни закрывал свои частные ключи (на своих доверенных машинах без другого доступа пользователя), а затем SSH на ваш сервер управления и просто запускали Ansible. Ваш локальный ssh-агент должен перенаправлять учетные данные в поле управления на удаленные узлы, которые вы настраиваете. – ydaetskcoR

Смежные вопросы