Informar ao Git sobre a chave GPG
Se você estiver usando uma chave GPG que corresponde à sua identidade do autor do submissão e ao endereço de e-mail verificado associado à sua conta em GitHub.com, você poderá começar a assinar commits e tags.
Note
Se você não tiver uma chave GPG que corresponda à identidade do committer, precisará associar um e-mail a uma chave existente. Para saber mais, confira Associar um e-mail à chave GPG.
Se você tiver várias chaves GPG, precisará informar ao Git qual deve ser usada.
-
Abra TerminalTerminalGit Bash.
-
Se você tiver configurado anteriormente o Git para usar um formato de chave diferente ao assinar com o
--gpg-sign
, desmarque essa configuração para que o formato padrão deopenpgp
seja usado.git config --global --unset gpg.format
-
Use o comando
gpg --list-secret-keys --keyid-format=long
para listar a forma longa das chaves GPG para as quais você tem uma chave pública e privada. Uma chave privada é necessária para assinar commits ou tags.Shell gpg --list-secret-keys --keyid-format=long
gpg --list-secret-keys --keyid-format=long
Note
Algumas instalações de GPG no Linux podem exigir o uso de
gpg2 --list-keys --keyid-format LONG
para ver uma lista das chaves existentes. Nesse caso, você também precisará configurar o Git para usargpg2
executandogit config --global gpg.program gpg2
. -
Da lista de chaves GPG, copie a forma longa do ID da chave GPG que você gostaria de usar. Neste exemplo, a ID da chave GPG é
3AA5C34371567BD2
:Shell $ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot <hubot@example.com> ssb 4096R/4BB6D45482678BE3 2016-03-10
$ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot <hubot@example.com> ssb 4096R/4BB6D45482678BE3 2016-03-10
-
Para definir a sua chave de assinatura GPG principal no Git, cole o texto abaixo, substituindo o ID da chave GPG principal que você gostaria de usar. Neste exemplo, a ID da chave GPG é
3AA5C34371567BD2
:git config --global user.signingkey 3AA5C34371567BD2
Como alternativa, você pode usar uma subchave. Neste exemplo, a ID da subchave GPG é
4BB6D45482678BE3
:git config --global user.signingkey 4BB6D45482678BE3
Se você usar várias chaves e subchaves, anexe um ponto de exclamação
!
à chave para informar ao git que esta é sua chave preferida. Às vezes, pode ser necessário escapar o ponto de exclamação com uma barra invertida:\!
. -
Opcionalmente, para configurar o Git a fim de assinar todos os commits e rótulos por padrão, insira o seguinte comando:
git config --global commit.gpgsign true git config --global tag.gpgSign true
Para obter mais informações, confira "Assinar commits".
-
Se você não estiver usando o pacote GPG, execute o seguinte comando no shell do
zsh
para adicionar a chave GPG ao arquivo.zshrc
, se houver, ou o arquivo.zprofile
:$ if [ -r ~/.zshrc ]; then echo -e '\nexport GPG_TTY=$(tty)' >> ~/.zshrc; \ else echo -e '\nexport GPG_TTY=$(tty)' >> ~/.zprofile; fi
Como alternativa, se você usar o shell do
bash
, execute este comando:$ if [ -r ~/.bash_profile ]; then echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bash_profile; \ else echo -e '\nexport GPG_TTY=$(tty)' >> ~/.profile; fi
-
Opcionalmente, para solicitar que você insira um PIN ou uma senha quando necessário, instale
pinentry-mac
. Por exemplo, usando o Homebrew:brew install pinentry-mac echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf killall gpg-agent
Se você estiver usando uma chave GPG que corresponde à sua identidade do autor do submissão e ao endereço de e-mail verificado associado à sua conta em GitHub.com, você poderá começar a assinar commits e tags.
Note
Se você não tiver uma chave GPG que corresponda à identidade do committer, precisará associar um e-mail a uma chave existente. Para saber mais, confira Associar um e-mail à chave GPG.
Se você tiver várias chaves GPG, precisará informar ao Git qual deve ser usada.
-
Abra TerminalTerminalGit Bash.
-
Se você tiver configurado anteriormente o Git para usar um formato de chave diferente ao assinar com o
--gpg-sign
, desmarque essa configuração para que o formato padrão deopenpgp
seja usado.git config --global --unset gpg.format
-
Use o comando
gpg --list-secret-keys --keyid-format=long
para listar a forma longa das chaves GPG para as quais você tem uma chave pública e privada. Uma chave privada é necessária para assinar commits ou tags.Shell gpg --list-secret-keys --keyid-format=long
gpg --list-secret-keys --keyid-format=long
Note
Algumas instalações de GPG no Linux podem exigir o uso de
gpg2 --list-keys --keyid-format LONG
para ver uma lista das chaves existentes. Nesse caso, você também precisará configurar o Git para usargpg2
executandogit config --global gpg.program gpg2
. -
Da lista de chaves GPG, copie a forma longa do ID da chave GPG que você gostaria de usar. Neste exemplo, a ID da chave GPG é
3AA5C34371567BD2
:Shell $ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot <hubot@example.com> ssb 4096R/4BB6D45482678BE3 2016-03-10
$ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot <hubot@example.com> ssb 4096R/4BB6D45482678BE3 2016-03-10
-
Para definir a sua chave de assinatura GPG principal no Git, cole o texto abaixo, substituindo o ID da chave GPG principal que você gostaria de usar. Neste exemplo, a ID da chave GPG é
3AA5C34371567BD2
:git config --global user.signingkey 3AA5C34371567BD2
Como alternativa, você pode usar uma subchave. Neste exemplo, a ID da subchave GPG é
4BB6D45482678BE3
:git config --global user.signingkey 4BB6D45482678BE3
Se você usar várias chaves e subchaves, anexe um ponto de exclamação
!
à chave para informar ao git que esta é sua chave preferida. Às vezes, pode ser necessário escapar o ponto de exclamação com uma barra invertida:\!
. -
Opcionalmente, para configurar o Git a fim de assinar todos os commits e rótulos por padrão, insira o seguinte comando:
git config --global commit.gpgsign true git config --global tag.gpgSign true
Para obter mais informações, confira "Assinar commits".
Se você estiver usando uma chave GPG que corresponde à sua identidade do autor do submissão e ao endereço de e-mail verificado associado à sua conta em GitHub.com, você poderá começar a assinar commits e tags.
Note
Se você não tiver uma chave GPG que corresponda à identidade do committer, precisará associar um e-mail a uma chave existente. Para saber mais, confira Associar um e-mail à chave GPG.
Se você tiver várias chaves GPG, precisará informar ao Git qual deve ser usada.
-
Abra TerminalTerminalGit Bash.
-
Se você tiver configurado anteriormente o Git para usar um formato de chave diferente ao assinar com o
--gpg-sign
, desmarque essa configuração para que o formato padrão deopenpgp
seja usado.git config --global --unset gpg.format
-
Use o comando
gpg --list-secret-keys --keyid-format=long
para listar a forma longa das chaves GPG para as quais você tem uma chave pública e privada. Uma chave privada é necessária para assinar commits ou tags.Shell gpg --list-secret-keys --keyid-format=long
gpg --list-secret-keys --keyid-format=long
Note
Algumas instalações de GPG no Linux podem exigir o uso de
gpg2 --list-keys --keyid-format LONG
para ver uma lista das chaves existentes. Nesse caso, você também precisará configurar o Git para usargpg2
executandogit config --global gpg.program gpg2
. -
Da lista de chaves GPG, copie a forma longa do ID da chave GPG que você gostaria de usar. Neste exemplo, a ID da chave GPG é
3AA5C34371567BD2
:Shell $ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot <hubot@example.com> ssb 4096R/4BB6D45482678BE3 2016-03-10
$ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot <hubot@example.com> ssb 4096R/4BB6D45482678BE3 2016-03-10
-
Para definir a sua chave de assinatura GPG principal no Git, cole o texto abaixo, substituindo o ID da chave GPG principal que você gostaria de usar. Neste exemplo, a ID da chave GPG é
3AA5C34371567BD2
:git config --global user.signingkey 3AA5C34371567BD2
Como alternativa, você pode usar uma subchave. Neste exemplo, a ID da subchave GPG é
4BB6D45482678BE3
:git config --global user.signingkey 4BB6D45482678BE3
Se você usar várias chaves e subchaves, anexe um ponto de exclamação
!
à chave para informar ao git que esta é sua chave preferida. Às vezes, pode ser necessário escapar o ponto de exclamação com uma barra invertida:\!
. -
Opcionalmente, para configurar o Git a fim de assinar todos os commits e rótulos por padrão, insira o seguinte comando:
git config --global commit.gpgsign true git config --global tag.gpgSign true
Para obter mais informações, confira "Assinar commits".
-
Para adicionar a chave GPG ao arquivo de inicialização
.bashrc
, execute o seguinte comando:[ -f ~/.bashrc ] && echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bashrc
Contando ao Git sobre sua chave SSH
Você pode usar uma chave SSH existente para assinar confirmações e marcas ou gerar uma nova especificamente para assinatura. Para saber mais, confira Gerando uma nova chave SSH e adicionando-a ao agente SSH.
Note
A verificação de assinatura SSH está disponível no Git 2.34 ou posterior. Para atualizar sua versão do Git, acesse o site do Git.
-
Abra TerminalTerminalGit Bash.
-
Configure o Git para usar SSH para assinar confirmações e marcas:
git config --global gpg.format ssh
-
Para definir a chave de assinatura SSH no Git, cole o texto abaixo, substituindo /PATH/TO/.SSH/KEY.PUB pela chave pública que deseja usar.
git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB
Contando ao Git sobre sua chave X.509
Use o smimesign para assinar confirmações e marcas usando o S/MIME.
Note
A verificação de assinatura S/MIME está disponível no Git 2.19 ou posterior. Para atualizar sua versão do Git, acesse o site do Git.
-
Instale o smimesign.
-
Abra TerminalTerminalGit Bash.
-
Configure o Git para usar o S/MIME para assinar commits e tags. No Git 2.19 ou posterior, use os comandos
git config gpg.x509.program
egit config gpg.format
:-
Para usar o S/MIME para assinar todos os repositórios:
git config --global gpg.x509.program smimesign git config --global gpg.format x509
-
Para usar o S/MIME para assinar um único repositório:
cd PATH-TO-REPOSITORY git config --local gpg.x509.program smimesign git config --local gpg.format x509
No Git 2.18 ou anterior, use o comando
git config gpg.program
: -
Para usar o S/MIME para assinar todos os repositórios:
git config --global gpg.program smimesign
-
Para usar o S/MIME para assinar um único repositório:
cd PATH-TO-REPOSITORY git config --local gpg.program smimesign
Se você estiver usando uma chave X.509 que corresponde à sua identidade do committer, poderá começar a assinar commits e tags.
-
-
Se você não estiver usando uma chave X.509 que corresponda à identidade do autor do commit, liste as chaves X.509 para as quais você tem um certificado e uma chave privada usando o comando
smimesign --list-keys
.smimesign --list-keys
-
Da lista de chaves X.509, copie o ID de certificado da chave X.509 que gostaria de usar. Neste exemplo, a ID do certificado é
0ff455a2708394633e4bb2f88002e3cd80cbd76f
:$ smimesign --list-keys ID: 0ff455a2708394633e4bb2f88002e3cd80cbd76f S/N: a2dfa7e8c9c4d1616f1009c988bb70f Algorithm: SHA256-RSA Validity: 2017-11-22 00:00:00 +0000 UTC - 2020-11-22 12:00:00 +0000 UTC Issuer: CN=DigiCert SHA2 Assured ID CA,OU=www.digicert.com,O=DigiCert Inc,C=US Subject: CN=Octocat,O=GitHub\, Inc.,L=San Francisco,ST=California,C=US Emails: octocat@github.com
-
Para definir sua chave de autenticação X.509 no Git, cole o texto abaixo, substituindo o certificado que você copiou anteriormente.
-
Para usar sua chave X.509 para assinar para todos os repositórios:
git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
-
Para usar sua chave X.509 para assinar um único repositório:
cd PATH-TO-REPOSITORY git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
-
Contando ao Git sobre sua chave X.509
Use o smimesign para assinar confirmações e marcas usando o S/MIME.
Note
A verificação de assinatura S/MIME está disponível no Git 2.19 ou posterior. Para atualizar sua versão do Git, acesse o site do Git.
-
Instale o smimesign.
-
Abra TerminalTerminalGit Bash.
-
Configure o Git para usar o S/MIME para assinar commits e tags. No Git 2.19 ou posterior, use os comandos
git config gpg.x509.program
egit config gpg.format
:-
Para usar o S/MIME para assinar todos os repositórios:
git config --global gpg.x509.program smimesign git config --global gpg.format x509
-
Para usar o S/MIME para assinar um único repositório:
cd PATH-TO-REPOSITORY git config --local gpg.x509.program smimesign git config --local gpg.format x509
No Git 2.18 ou anterior, use o comando
git config gpg.program
: -
Para usar o S/MIME para assinar todos os repositórios:
git config --global gpg.program smimesign
-
Para usar o S/MIME para assinar um único repositório:
cd PATH-TO-REPOSITORY git config --local gpg.program smimesign
Se você estiver usando uma chave X.509 que corresponde à sua identidade do committer, poderá começar a assinar commits e tags.
-
-
Se você não estiver usando uma chave X.509 que corresponda à identidade do autor do commit, liste as chaves X.509 para as quais você tem um certificado e uma chave privada usando o comando
smimesign --list-keys
.smimesign --list-keys
-
Da lista de chaves X.509, copie o ID de certificado da chave X.509 que gostaria de usar. Neste exemplo, a ID do certificado é
0ff455a2708394633e4bb2f88002e3cd80cbd76f
:$ smimesign --list-keys ID: 0ff455a2708394633e4bb2f88002e3cd80cbd76f S/N: a2dfa7e8c9c4d1616f1009c988bb70f Algorithm: SHA256-RSA Validity: 2017-11-22 00:00:00 +0000 UTC - 2020-11-22 12:00:00 +0000 UTC Issuer: CN=DigiCert SHA2 Assured ID CA,OU=www.digicert.com,O=DigiCert Inc,C=US Subject: CN=Octocat,O=GitHub\, Inc.,L=San Francisco,ST=California,C=US Emails: octocat@github.com
-
Para definir sua chave de autenticação X.509 no Git, cole o texto abaixo, substituindo o certificado que você copiou anteriormente.
-
Para usar sua chave X.509 para assinar para todos os repositórios:
git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
-
Para usar sua chave X.509 para assinar um único repositório:
cd PATH-TO-REPOSITORY git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
-