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 tiver uma razão muito boa para usar o sudo
, use-o com todos os comandos (provavelmente, é melhor usar o su
para obter um shell como raiz neste ponto). 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
Sabemos que digitar é difícil. Preste atenção ao que digita; você não conseguirá se conectar a "githib.com" ou "guthub.com". Em alguns casos, uma rede corporativa também pode causar problemas ao resolver o registro DNS.
Insira o segunte comando para confirmar que está conectado ao domínio correto:
$ ssh -vT git@HOSTNAME
> 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 HOSTNAME port 22.
A conexão deve ser feita na porta 22.
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 Enterprise Server nome de usuário, ocorrerá um erro:
$ ssh -T GITHUB-USERNAME@HOSTNAME
> Permission denied (publickey).
Se a conexão falhar e você estiver usando uma URL remota com seu nome de usuário do GitHub Enterprise Server, altere a URL remota para usar o usuário "git".
Verifique sua conexão digitando:
$ ssh -T git@HOSTNAME
> 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 Enterprise Server.
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@[hostname]
:
$ ssh -vT git@HOSTNAME
> ...
> 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).
Nesse exemplo, não temos nenhuma chave SSH para usar. "-1" ao final das linhas "arquivo de identificação" indica que o SSH não conseguiu encontrar um arquivo para usar. Mais adiante, as linhas "Tentando chave privada" também indicam que o arquivo não foi encontrado. Se existisse um arquivo, as linhas seriam respectivamente "1" e "Apresentando chave pública":
$ ssh -vT git@HOSTNAME
> ...
> 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 Enterprise Server 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, clique na foto do seu perfil e 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, clique na foto do seu perfil e 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, clique na foto do seu perfil e 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 Enterprise Server, você precisará adicionar sua chave SSH ao GitHub Enterprise Server para associá-la ao computador.
Aviso: se você receber uma chave SSH com a qual não esteja familiarizado no GitHub Enterprise Server, exclua-a imediatamente e entre em contato com o seu administrador do site 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".