You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This Gist explains how to do this using gpg in a step-by-step fashion. Kryptonite is actually wickedly easy to use-but you will still need to follow the instructions
For using a GUI-based GIT tool such as Tower or Github Desktop, follow the steps here for signing with either GPG or Krypt.co.
There has been a number of comments on this gist regarding some issues around the pinentry-program and M1 Macs. I've finally gotten a chance to try things out on an M1 and I've updated the documentation in 2-using-gpg.md to reflect my findings.
Utilizamos o gestor de pacotes homebrew para este passo.
brew install gpg2 gnupg pinentry-mac
Passo 2: Criar o Directório .gnupg
Se esta diretório não existir, crie-o. EDIT: Junho 2022 - Corrigindo citações simples para permitir a expansão da sub-capa
# Fazer o directório
mkdir ~/.gnupg
# Diz ao GPG qual o programa de pineração a utilizar
echo "pinentry-program $(brew --prefix)/bin/pinentry-mac" > ~/.gnupg/gpg-agent.conf
Passo 3: Atualizar ou Criar ~/.gnupg/gpg.conf
Se este ficheiro não existir, crie-o.
# Isto diz ao gpg para usar o gpg-agent
echo 'use-agent' > ~/.gnupg/gpg.conf
Passo 4: Modificar a seu Shell
Anexe o seguinte ao seu ~/.bash_profile ou ~/.bashrc ou ~/.zshrc
...
exportar GPG_TTTY=$(tty)
Passo 5: Reinicie o seu Terminal ou obtenha o seu ficheiro ~/.*rc
# sobre a base incorporada sobre o uso de macos
fonte ~/.bash_profile
# se usar bash through homebrew over ssh use
fonte ~/.bashrc
# e se usar zsh
fonte ~/.zshrc
Passo 6: Atualizar as permissões no seu ~/.gnupg Directory
Terá de modificar as permissões para 700 para assegurar este diretório.
chmod 700 ~/.gnupg
Passo 7: Matar o Agente GPG
Para garantir que não se depara com problemas, execute o comando abaixo para assegurar que um agente gpg recém-configurado é lançado.
killall gpg-agent
Passo 8: Crie a sua chave GPG
Execute o seguinte comando para gerar a sua chave, note que temos de utilizar a bandeira --expert de modo a gerar uma chave de 4096 bits.
gpg --full-gen-key
Passo 9: Responder às perguntas
Uma vez introduzidas as suas opções, a pinentry pedir-lhe-á uma palavra-passe para a nova chave PGP. Há uma série de argumentos sobre o tema das datas de validade com chaves GPG, por brevidade e para manter esta explicação simples não estamos a utilizar Subkeys neste exemplo e a mostrar um exemplo não expirado. Se quiser seguir as melhores práticas, vai querer procurar gerar uma Chave Primária e depois Subkeys e o manuseamento seguro envolvido com isso.
Por favor selecione o tipo de chave desejado:
(1) RSA and RSA
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(9) ECC (sign and encrypt) *default*
(10) ECC (sign only)
(14) Existing key from card
Opção? 4
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
O tamanho de chave pedido é 4096 bits
Por favor especifique por quanto tempo a chave deve ser válida.
0 = chave não expira
<n> = chave expira em n dias
<n>w = chave expira em n semanas
<n>m = chave expira em n meses
<n>y = chave expira em n anos
A chave é valida por? (0) 0
Key does not expire at all
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Nome completo: Alan Denis Vargas Garcia
Endereço de correio eletrónico: alandvgarcia@gmail.com
Comentário:
Você selecionou este identificador de utilizador:
"Alan Denis Vargas Garcia <alandvgarcia@gmail.com>"
Mudar (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air? o
Passo 10: Obtenha a sua chave para Git, etc.
# Liste as suas chaves
gpg -k
Passo 11: Obtenha a sua identificação chave
Utilize o comando seguinte para gerar uma forma curta da impressão digital chave.
Copiar o texto após o rsa4096/ e antes da data gerada e utilizar o id copiado no passo 13:
Precisa de copiar a saída do seu terminal semelhante ao exemplo acima onde o ######## está a seguir a barra. *
Passo 12: Exportar a impressão digital
Na saída do passo 10, a linha abaixo da linha que diz 'pub' mostra uma impressão digital - isto é o que se usa no placeholder. A saída de baixo é o que se copia para Github. A documentação sobre como fazer isso é aqui
# O comando de exportação abaixo dá-lhe a chave que você adiciona ao GitHub
gpg --armor - exportar <sua chave id>
Passo 13: Configurar o Git para usar o gpg
git config --global gpg.program $(which gpg)
Passo 14: Configurar o Git para usar a sua chave de assinatura
O comando abaixo precisa da impressão digital do passo 10 acima:
git config --global user.signingkey 1111111
Passo 15: Configurar o Git para assinar todos os commits (Opcional - você pode configurar isto por repositório também)
Isto diz a Git para assinar todos os compromissos usando a chave que especificou no passo 13.
git config --global commit.gpgsign true
Passo 16: Commit assinado
git commit -S -s -m "My Signed Commit"
Passo 17: Pinentry
Será agora solicitado por Pinentry a senha para a sua chave de assinatura. Pode introduzi-la na caixa de diálogo - com a opção de guardar a palavra-chave para o chaveiro macOS X.
Passo 18: Submeta a sua chave PGP ao Github para verificar os seus Commits
Entre em Github.com e vá às suas definições, chaves SSH e GPG, e adicione a sua chave GPG a partir da página.
Passo 19: Submeter a sua chave a um servidor de chaves público (muito opcional)
Antes de saltar ao submeter a sua chave a um serviço como o MIT PGP Key Server, deve considerar o seguinte:
Não pode apagar a sua chave uma vez submetida
Os spammers são conhecidos por colher endereços de correio eletrónicos destes servidores
Se só está a assinar o seus commits com Github, isto não é necessário
Resolução de problemas
Erro Sem pinentrada
Isto é causado por um programa de pinharia incorrectamente configurado. Rever o passo 2 e completar novamente a segunda parte.
Erro ## Nenhum ficheiro ou directório deste tipo
Isto é causado por uma configuração em falta para especificar o programa de pineração. Se estava a seguir uma versão anterior deste resumo que dizia que não precisava de especificar um programa de pininstração, terá de refazer a segunda parte do Passo 2.
Outros erros
Se tiver algum erro ao gerar uma chave relativa ao gpg-agent, tente o seguinte comando para ver que erro gera:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters