Vol. 1 No. 20250815-763 (2025)

Chave privada em repositório Git

Matheus Augusto da Silva Santos | matheus@cylo.com.br | 15/08/2025

Recentemente, estava explorando o repositório GitHub de um framework que utilizo para desenvolvimento. Observando modificações recentes, me deparei com um commit que me deixou inicialmente muito confuso: uma chave privada, aparentemente utilizada para assinar o pacote de instalação do framework, havia sido adicionada aos arquivos do repositório.

Felizmente, após inspecionar a chave pública acompanhante, revelou-se que a chave foi credenciada para o domínio yourdomain.com. Comentando isso com um colega de trabalho, ele me instruiu que isso é, na verdade, algo relativamente comum: adicionar arquivos com uma chave de exemplo ao repositório para que a estrutura de arquivos fique completa. Adicionalmente, em alguns casos (como desenvolvimento de aplicações web), é possível utilizar esse certificado no ambiente de desenvolvimento local redirecionando o domínio de exemplo para o local host via alteração do arquivo hosts.

Digo que fiquei aliviado descobrindo que a adição da chave ao repositório foi, muito provavelmente, intencional e não impõe um risco de segurança ao projeto (é um dos meus frameworks favoritos). Reconheço que acidentes, especialmente quanto a adição de arquivos no Git que não deveriam ser adicionados, acontecem. Inúmeras vezes já ansiosamente executei git add .; git commit -m "..." no terminal, descobrindo somente depois que havia algum artefato de compilação, ou arquivo de cache (estou olhando para você, mypy), esquecido no diretório do projeto que agora havia sido imortalizado no repositório pela execução precoce do comando. Como diz o ditado, “once in git, always in git”.

Hoje em dia sou moderadamente mais cauteloso e ademais, grato pelas abençoadas almas que dispõem modelos de .gitignore na web. Porém, pessoalmente não julgo cautela como suficiente! Utilizo no meu desenvolvimento o pre-commit, uma ferramenta que realiza verificações automáticas antes de toda modificação de arquivos em um repositório Git. Incidentalmente, um dos plugins disponibilizados por padrão pela ferramenta possui um teste que previne o commit acidental de uma chave privada.


Referências

  • pre-commit. Disponível em: <https://pre-commit.com/>.
  • pre-commit/pre-commit-hooks. Disponível em: <https://github.com/pre-commit/pre-commit-hooks>.