Como posso salvar minhas chaves secretas e senha com segurança no meu sistema de controle de versão?

Mantenho configurações importantes, como os nomes de host e as portas dos servidores de desenvolvimento e produção no meu sistema de controle de versão. Mas eu sei que émá prática mantersegredos (como chaves privadas e senhas de banco de dados) em um repositório VCS.

Mas as senhas - como qualquer outra configuração - parecem que devem ser versionadas. E daíé a maneira correta de manter as senhas controladas?

Eu imagino que envolveria manter osegredos em seu próprio arquivo "configurações de segredos" e ternaquela arquivo criptografado e versão controlada. Mas que tecnologias? E como fazer isso corretamente? Existe uma maneira melhor de fazer isso?

Eu faço a pergunta em geral, mas na minha instância específica eu gostaria de armazenar chaves secretas e senhas para umDjango / Python site usandogit egithub.

Além disso, umideal solução faria algo mágico quando eu empurrar / puxar com git - por exemplo, se o arquivo de senhas criptografadas muda um script é executado que pede uma senha e descriptografa-lo no lugar.

EDIT: Para maior clareza, eusou perguntando sobre onde armazenarProdução segredos.