O comando sudo
ou os privilégios elevados devem ser usados com o Git?
Você não deve usar o comando sudo
nem privilégios elevados, como permissões de administrador, com o Git.
Se você tiver um motivo muito bom para usar o sudo
, use-o com todos os comandos. Se você gerar chaves SSH sem o sudo
e tentar usar um comando como sudo git push
, as mesmas chaves geradas não serão usadas.
Verifique se está conectado ao servidor correto
Insira o segunte comando para confirmar que está conectado ao domínio correto:
ssh -vT git@github.com
ssh -vT git@github.com
Você deverá ver este resultado:
> OpenSSH_8.1p1, LibreSSL 2.7.3
> debug1: Reading configuration data /Users/YOU/.ssh/config
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: /etc/ssh/ssh_config line 47: Applying options for *
> debug1: Connecting to github.com port 22.
A conexão deve ser feita na porta 22, a menos que você esteja substituindo as configurações para usar o SSH por HTTPS.
Sempre utilize o usuário "git"
Todas as conexões devem ser feitas como usuário "git", inclusive aquelas para URLs remotas. Se você tentar se conectar com o seu GitHub nome de usuário, ocorrerá um erro:
$ ssh -T GITHUB-USERNAME@github.com
> Permission denied (publickey).
Se a conexão falhar e você estiver usando uma URL remota com seu nome de usuário do GitHub, altere a URL remota para usar o usuário "git".
Verifique sua conexão digitando:
ssh -T git@github.com
ssh -T git@github.com
Você deverá ver este resultado:
> Hi USERNAME! You've successfully authenticated...
Garanta que você tem uma chave que está em uso
-
Abra TerminalTerminalGit Bash.
-
Verifique se você tem uma chave privada gerada e carregada em SSH.
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566 $ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
Se você tiver o GitHub Desktop instalado, poderá usá-lo para clonar repositórios e não lidar com chaves SSH.
-
Se você estiver usando o Git Bash, ative o ssh-agent:
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566
Se você estiver usando outro prompt de terminal, como o Git para Windows, ative o ssh-agent:
# start the ssh-agent in the background $ eval $(ssh-agent -s) > Agent pid 59566
Observação: os comandos eval acima iniciam o ssh-agent manualmente em seu ambiente. Esses comandos poderão falhar se o ssh-agent já estiver sendo executado como um serviço do sistema em segundo plano. Se isso acontecer, recomendamos que você verifique a documentação relevante para o seu ambiente.
-
Verifique se você tem uma chave privada gerada e carregada em SSH.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
Abra TerminalTerminalGit Bash.
-
Verifique se você tem uma chave privada gerada e carregada em SSH.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
O comando ssh-add
deve imprimir uma longa cadeia de caracteres de números e letras. Se ele não imprimir nada, você precisará gerar uma nova chave SSH e associá-la ao GitHub.
Dica: na maioria dos sistemas, as chaves privadas padrão (~/.ssh/id_rsa
e ~/.ssh/identity
) são adicionadas automaticamente ao agente de autenticação SSH. Você não precisará executar ssh-add path/to/key
, a menos que substitua o nome do arquivo ao gerar uma chave.
Obter mais detalhes
Você também pode verificar se a chave está sendo usada tentando se conectar a git@github.com
:
ssh -vT git@github.com
ssh -vT git@github.com
Você verá uma saída semelhante a esta:
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type -1
> debug1: identity file /Users/YOU/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa-cert type -1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Trying private key: /Users/YOU/.ssh/id_rsa
> debug1: Trying private key: /Users/YOU/.ssh/id_dsa
> debug1: No more authentication methods to try.
> Permission denied (publickey).
Neste exemplo, o SSH não encontrou nenhuma chave.
- "-1" no final das linhas do "arquivo de identidade" significa que o SSH não conseguiu encontrar um arquivo para usar.
- As linhas "Tentando chave privada" indicam que nenhum arquivo foi encontrado.
Se existisse um arquivo, essas linhas seriam "1" e "Oferecendo chave pública", como nesta saída:
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type 1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Offering RSA public key: /Users/YOU/.ssh/id_rsa
Verifique se a chave pública está associada à sua conta
Forneça sua chave pública a GitHub para estabelecer uma conexão segura.
-
Abra o terminal.
-
Inicie o SSH agent em segundo plano.
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
Encontre e anote a impressão digital da chave pública.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
No canto superior direito de qualquer página do GitHub, clique sua foto de perfil e, em seguida, clique em Configurações.
-
Na seção "Acesso" da barra lateral, clique em Chaves SSH e GPG.
-
Compare a lista de chaves SSH com a saída do comando
ssh-add
.
-
Abra a linha de comando.
-
Inicie o SSH agent em segundo plano.
$ ssh-agent -s > Agent pid 59566
-
Encontre e anote a impressão digital da chave pública.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
No canto superior direito de qualquer página do GitHub, clique sua foto de perfil e, em seguida, clique em Configurações.
-
Na seção "Acesso" da barra lateral, clique em Chaves SSH e GPG.
-
Compare a lista de chaves SSH com a saída do comando
ssh-add
.
-
Abra o terminal.
-
Inicie o SSH agent em segundo plano.
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
Encontre e anote a impressão digital da chave pública. Se estiver usando OpenSSH 6.7 ou anterior:
$ ssh-add -l > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
Se estiver usando OpenSSH 6.8 ou posterior:
$ ssh-add -l -E md5 > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
-
No canto superior direito de qualquer página do GitHub, clique sua foto de perfil e, em seguida, clique em Configurações.
-
Na seção "Acesso" da barra lateral, clique em Chaves SSH e GPG.
-
Compare a lista de chaves SSH com a saída do comando
ssh-add
.
Se a chave pública não for exibida no GitHub, você precisará adicionar sua chave SSH ao GitHub para associá-la ao computador.
Aviso: se você receber uma chave SSH com a qual não esteja familiarizado no GitHub, exclua-a imediatamente e entre em contato com o conosco por meio do Portal de suporte do GitHub para obter mais ajuda. Uma chave pública desconhecida pode indicar um possível problema de segurança. Para obter mais informações, confira "Revisar suas chaves SSH".