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
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.
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 "Como revisar suas chaves SSH".