Я сохраняю важные настройки, такие как имена хостов и порты серверов разработки и производства в моей системе управления версиями. Но я знаю, что это плохая практика хранить секреты (например, личные ключи и пароли базы данных) в репозитории VCS.
Но пароли - как и любые другие настройки - кажутся, что они должны быть версиями. Итак, каков правильный способ контроля версий паролей?
Я предполагаю, что это связано с сохранением секретов в их собственном файле настроек секретов и с зашифрованным файлом и контролем версий. Но какие технологии? И как это сделать правильно? Есть ли лучший способ сделать это?
Я задаю вопрос в целом, но в моем конкретном экземпляре я хотел бы хранить секретные ключи и пароли для сайта Django/Python с помощью git и github.
Кроме того, идеальное решение будет делать что-то волшебное, когда я нажимаю/тяну с помощью git - например, если файл зашифрованных паролей изменяется, выполняется script, который запрашивает пароль и расшифровывает его на месте.
EDIT: Для ясности я спрашиваю, где хранить секреты производства.