Criando chaves SSH e GPG para o Github

2 minutos de leitura

Não sei se vocês passam por isso, mas frequentemente eu troco minhas chaves SSH e GPG que uso no github. As vezes por precaução, mas a maioria das vezes é por esquecimento mesmo. E todas as vezes que vou criar novas chaves é o mesmo parto. Em vista disso, resolvi resumir um pouco o trabalho que é fazer toda essa via sacra de criação. Não chega a ser complicado, mas ter esses passos resumidos em um só lugar ajuda.

Chave SSH

Primeiramente, vamos fazer a nossa chave SSH. A primeira coisa que você fará é criar sua chave. O comando é simples:

ssh-keygen -t rsa -b 4096 -C "seu-email@exemplo.com"

Isso irá criar sua chave. Nas próximas telas, será perguntado o caminho onde será criada a chave. Eu geralmente uso o caminho padrão /home/me/.ssh/id_rsa que é fornecido.

Depois de criada a chave SSH, é hora de adicionar a mesma no ssh-agent.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Depois de executados esses dois comandos, é só copiar sua chave SSH pública (que está em /home/me/.ssh/id_rsa.pub) e adicionar na sua conta do Github na seção SSH Keys.

Chave GPG

Não sei vocês, mas eu gosto de assinar todos os commits que faço. Não que isso mude algo na minha vida ou na vida de alguém, mas quando você pega esse costume, é difícil depois você parar. Em vista disso, vamos mostrar como criar sua chave GPG, que na verdade é bem simples:

gpg --gen-key

Rodando esse comando, serão mostradas algumas perguntas para você, como qual chave usar, tamanho da chave (eu uso RSA tamanho 4096) e outros dados pessoais. Por último é pedido uma senha para sua chave. Não se esqueça dessa senha, pois sem ela você não conseguirá assinar nada com essa chave criada. Após criada a chave, você pode vê-la com o comando:

gpg --list-keys

Para exportar sua chave para usar no github, você poderá usar o seguinte comando:

gpg --armor --export XXXXXXXX

Onde XXXXXXXX é o identificador da chave pública da sua chave GPG (indicado pelo sinal pub no comando anterior). O retorno desse comando é sua chave pública que você irá adicionar no github, na seção GPG Keys.

Agora, para assinar eus commits, você precisará setar sua chave pública como chave de assinatura:

git config --global user.signingkey XXXXXXXX

Aqui o identificador é o mesmo do comando anterior, que foi a chave gerada por você. Esse comando informará o git que todas as vezes que você for assinar um commit, ele irá usar essa chave. Caso você use diferentes usuários, você pode remover a opção --global do comando e configurar uma chave de assinatura para cada projeto que você desenvolve.

Para assinar seu commit, é simples. É só adicionar o parâmetro -S no seu comando de commit, como abaixo:

git commit -S -m "Mensagem de commit bonitinha"

Geração de Entropia

As vezes, ao gerar as chaves SSH ou GPG, o sistema pode lhe informar que não há entropia suficiente para gerar a chave, exigindo que você fique digitando ou mexendo o mouse até que a quantidade de bytes aleatórios seja gerada. Como não estamos falando de um sistema que necessite de uma segurança incrível, podemos forçar o sistema a gerar esses bytes de entropia de maneira mais rápida. Para isso, basta instalar o pacote rng-tools e executar o seguinte comando (em outro terminal):

rngd -r /dev/urandom

Esse comando irá gerar a entropia que falta para que sua chave possa ser gerada.


Bom, é isso. Fiquem agora com os comerciais. Espero que tenham gostado desse resumão de como adicionar chaves SSH/GPG à sua conta do Github.

:(){ :|:& };:

Deixe um comentário