Erro Git: “Por favor, certifique-se de ter os direitos de acesso corretos e de que o repositório existe”


97

Estou usando o TortoiseGit no Windows. Quando estou tentando clonar a partir do menu de contexto do Windows Explorer padrão, recebo este erro:

Certifique-se de que possui os direitos de acesso corretos e de que o repositório existe

Mais precisamente, o instantâneo do terminal é o seguinte:

clone git.exe --progress -v "git @ arobotdev: \ git \ AlfaRobot.git" "C: \ Work \ AlfaRobot"

Clonando em 'C: \ Work \ AlfaRobot' ...
Permissão negada, tente novamente.
Permissão negada, por favor tente novamente.
Permissão negada (chave pública, senha).
fatal: não foi possível ler do repositório remoto.

Certifique-se de que possui os direitos de acesso corretos
e de que o repositório existe.

git não saiu corretamente (código de saída 128) (21450 ms @ 19.09.2014 10:36:58)

O que devo fazer para fazer o git funcionar corretamente?


1
tente gerar ssh keygen e adicionar
Raja Simon

Usando Shell (ou Git Bash no Windows) para criar uma chave SSH:$ ssh-keygen -t rsa -C "youremail@example.com"
Depois de

Tive esse erro depois de mudar os repos para os endereços git@github.com por não ter que digitar a senha o tempo todo. O verdadeiro erro que causou isso foi esquecer de adicionar minha chave pública no github.
dasWesen

Respostas:


76

Seu URL git pode ter mudado. Altere o URL no diretório local usando o seguinte comando

git remote set-url origin git@yourGitUrlHere

17
Para sua informação, o github agora usa um esquema de url:git remote set-url origin https://github.com/username/repository.git
RyPope

2
@RyPope você pode usar qualquer protocolo git (ssh) ou https, se desejar. github agora tem protocolos gite https.
Vishnu de

@Vishnu Qual é XXXXXXX?
244boy

@RyPope Converta em uma resposta
ishandutta2007 01 de

Erro muito comum foi cometido por mim. Copiei usando o comando clip xclip -sel clip < ~/.ssh/id_rsa.pub, mas durante a colagem na caixa de entrada de chave do github, removi a última nova linha usando backspace, que na verdade mudou a chave pública. Portanto, sempre copie e cole a chave pública ssh sem remover a última nova linha.
Amreesh Tyagi

62

Esse problema pode estar ocorrendo com seu agente ssh, sua chave ssh não foi adicionada com ssh-agent. Você deve aplicar as seguintes etapas usando seu terminal: -

  1. $ eval "$ (ssh-agent -s)"

    Agente pid 5867

  2. $ ssh-add

    Digite a senha de /home/you/.ssh/id_rsa: [] Identidade adicionada: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

então vai funcionar ... cheers J.


11
Ainda obtendo um erro ao clonar:fatal: Could not read from remote repository.
IgorGanapolsky

Obrigado, funcionou para mim, eu criei uma chave diferente do id_rsa padrão, então apenas tenho que fazer isso adicionalmente no comando acima ssh-add -K ~ / .ssh / id_rsa_other_project.
Nitesh

Sim, isso não vai resolver nenhum problema. Adicionar sua identidade ao ssh apenas para de pedir sua senha cert todas as vezes
DMcCallum83

Felicidades. Eu falhei em correr brew update. quando eu corri ssh-addantes de executar o comando, funcionou. espero não ter que repetir isso o tempo todo.
nyxee

ainda obtém o erro "Falha na verificação da chave do host. fatal: não foi possível ler do repositório remoto." mas adicionar host conhecido corrigido para mim: stackoverflow.com/questions/15214977/…
rickvian

36

Tente usar HTTPS em vez de SSH enquanto clona do GIT, use este Url para clone, você pode usar Gitbase, Android Studio ou qualquer outra ferramenta para clonar o branch. insira a descrição da imagem aqui


35

Para mim, foi por causa de nenhuma chave SSH na máquina. Verifique a chave SSH localmente:

$ cat ~/.ssh/id_rsa.pub

Esta é sua chave SSH. Adicione-o às suas chaves SSH no repositório.
No gitlab vá para

configurações de perfil -> Chaves SSH

e adicione a chave


7
Eu adicionei a chave conforme você mencionou e ainda recebo a mensagem de acesso negado. Por favor, ajude
Jet

18

O Github agora usa um esquema de url

git remote set-url origin https://github.com/username/repository.git


9

Você está tentando clonar o repositório por meio de ssh: git@arobotdev...e suas chaves SSH não estão configuradas corretamente no servidor. Existem vários motivos para isso:

  1. Sua chave pública pode não estar salva no arquivo authorized_keys do usuário git
  2. Se 1 não for verdadeiro, sua chave privada não é salva em .ssh / pasta de seu HOMEDIR.
  3. As permissões não estão definidas corretamente

Se todos os 3 acima forem falsos, então minha única conclusão pode ser tentar: git@arobotdev:AlfaRobot.git Supondo que AlfaRobot.git esteja no HOMEDIR do usuário git e não dentro de uma pasta chamada git que reside no HOMEDIR do usuário git.


5

O rsa.pub (ou seja, chave pública gerada), precisa ser adicionado na página github >> configurações >> chaves ssh. Verifique se você não adicionou esta chave pública nas configurações do repositório >> chaves de implantação. Em caso afirmativo, remova a entrada daqui e adicione ao primeiro local mencionado.

Configuração detalhada das chaves pub-private .

Vai funcionar daqui!


3
  1. A primeira coisa que você pode querer confirmar é a conexão com a Internet. Porém, os problemas de Internet dirão principalmente que o repo não pode ser acessado.

  2. Certifique-se de configurar o ssh localmente e em seu github. Veja como

  3. Certifique-se de usar o ssh git remote. Se você clonou o https, basta definir a url para a url ssh, com este comando gitgit remote set-url origin git@github.com:your-username/your-repo-name.git

  4. Se você configurou o ssh corretamente, mas ele simplesmente parou de funcionar, faça o seguinte:

    • eval "$(ssh-agent -s)"
    • ssh-add

    Se você ainda estiver tendo o problema, verifique se você não excluiu o ssh do seu github. No caso em que o ssh foi excluído do github, você pode adicioná-lo novamente. Use pbcopy < ~/.ssh/id_rsa.pubpara copiar a chave ssh e, em seguida, vá para a configuração ssh do github e adicione-a.

Vou recomendar que você sempre use ssh. Para a maioria das equipes com as quais trabalhei, você não pode acessar o repo (que são em sua maioria privados), exceto se usar ssh. Para um iniciante, pode parecer mais difícil, mas depois você descobrirá que é muito mais fácil e seguro.


3

Eu tive esse problema e descobri que meu sistema estava com o endereço de DNS errado. Verifique sua rede e teste com

ssh -vvv git@bitbucket.org

E leia as mensagens de saída. Se você vir "Você pode usar git ou hg para se conectar ao Bitbucket." , está tudo bem.


Olá @Albert, estou enfrentando o mesmo problema, mas para gitlab.com. Como você conseguiu resolver o problema?
abiratsis

@AlexandrosBiratsis Eu substituo meu dns por outro endereço. Experimente opendns ou google dns.
Albert

2

Um problema alternativo pode ser sua conexão com a Internet. Óbvio, talvez, mas demorei alguns minutos para descobrir que meu wi-fi havia caído :)


1
De acordo com a mensagem de erro, não parece que a conexão com a Internet seja um problema aqui.
jbmusso

2

Aqui está como eu resolvo esse problema. Eu estava usando Babun (mintty.exe) no Win7 / 10. Quando tentei muitas soluções mencionadas acima, e nenhuma delas funcionou. Percebi que talvez só usei o agente ssh errado ... Então eu corri echo $GIT_SSHpara descobrir, ele mostra o caminho para Plink.exe. O que eu realmente esperava é o OpenSSH.

Então, eu adiciono a seguir uma linha ao ~/.zshrcarquivo

Nota 1: você pode executá-lo diretamente no babun.
Nota 2: se você usar o bash, o arquivo de configuração é.bashrc

export GIT_SSH=$(which ssh)

E funciona!



2

Tente https em vez de ssh. Escolha a opção https na página inicial do projeto de onde você copia o URL do clone.


2

Se estava funcionando antes e parou de funcionar de repente:

Esse problema pode ser causado porque às vezes ssh-agentnão é persistente nas reinicializações. Você deve verificar se ssh-agentsua chave foi adicionada:

ssh-add -l -E md5

se você obtiver a saída como:

The agent has no identities.

significa ssh-agentque perdeu sua chave. Nesse caso, você simplesmente precisa adicionar a chave de identidade novamente. Algo como:

ssh-add ~/.ssh/git_rsa

O erro deve desaparecer agora!


Isso aconteceu comigo quando criei outro ssh para uma conta diferente, então apenas adicionei o que está faltando git_rsaà lista
João

1

Isso também pode acontecer se você estiver se conectando ao seu repositório git por meio de uma VPN. Certifique-se de estar conectado à VPN usada para acessar os recursos de sua organização.


1

Encontro este erro ao enviar o projeto para o gitlab. Eu não clonei do git, mas sim fiz upload do projeto. Para enviar seu código ao gitlab, você tem duas maneiras de usar ssh ou https. Se você usar https, deverá inserir o nome de usuário e a senha da conta gitlab. Para empurrar seu código para o git, você pode usar o seguinte.

Empurrando para o Git pela primeira vez

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"

O parâmetro -C é opcional, ele fornece um comentário no final de sua chave para distingui-lo de outros se você tiver vários. Isso criará id_rsa (sua chave privada) e id_rsa.pub (sua chave pública). Passamos nossa chave pública e mantemos nossa chave privada - bem, privada. As configurações do usuário do Gitlab são onde você adicionaria sua chave pública à sua conta , permitindo-nos finalmente enviar.

Na localização do seu projeto (Diretório), use o comando abaixo

git init

Ele transforma o diretório atual em um repositório Git. Isso adiciona um subdiretório .git ao diretório atual e torna possível iniciar a gravação de revisões do projeto.

Push usando o caminho https

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

Push usando o caminho ssh

git push --set-upstream git@gitlab.com:Account_User_Name/Your_project_Name.git master

- set-upstream: diz ao git o caminho para a origem. Se o Git já tiver feito push em seu branch atual, ele se lembrará de onde está a origem

master : este é o nome do branch que desejo enviar ao inicializar


0

Como outras respostas, use em httpsvez de sshfoi a solução.

Publico uma resposta para dar um exemplo concreto de uma solução possível. Resolvi esse problema com o bitbucket quando alterei o url remoto para HTTPS com esta linha de comando:

git remote set-url origin <bitbucket_URL>

Depois disso, eu poderia enviar o conteúdo para o repositório com este comando:

git push -u origin --all

E então eu também poderia usar Sourcetree


0

Estranhamente, só recebi esse erro em um dos meus muitos repositórios.

Meu problema foi depois de instalar o novo GitHub Desktop para Windows onde o antigo GitHub para Win mantinha as chaves ~/.ssh/github_rsae ~/.ssh/github_rsa.pubonde o novo GitHub para Win esperava, ~/.ssh/id_rsaentão a solução era apenas renomear as chaves públicas e privadas existentes:

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

Depois disso, deixe-me acessar o repo novamente sem problemas.


0

use sua origem https em vez do url ssh

exemplo:

git remote add origin  https://gitlab.com/user/folder.git

0

Estou usando o Ubuntu

depois de ler muitas das respostas, nenhum deles pode resolver o problema, mesmo se eu já adicionar a chave SSH à minha conta git, e tentar testá-la usando ssh -T git@gitlab.come disse Welcome <my username>, mas ainda continua me dizendo que não tenho direitos de acesso. Então descobri que o motivo é:

Normalmente, se você não for um rootusuário, será necessário executar com sudotodos os comandos do git.

durante a execução sudo git clone <SSH....>(por exemplo). ele será executado com rootpermissão, mas acidentalmente ao criar a chave SSH eu o executo como usuário normal e salvo a chave ~/.ssh/id_rsa, ele resolve o caminho absoluto /home/username/.ssh/id_rsa. E ao fazer sudo git clone ...isso, procure a chave SSH em/root/.ssh/id_rsa

Por que eu posso ter certeza disso. Para ver onde git procura sua chave SSH. Executar este comando: sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>. Ele mostrará onde procura sua chave SSH.

Portanto, a SOLUÇÃO que sugiro é:

Recriar sua chave SSH (siga esta instrução ), MAS execute sudo suna primeira etapa, então você ficará bem.



0

Erro muito comum foi cometido por mim. Copiei usando o comando clip xclip -sel clip < ~/.ssh/id_rsa.pub, mas durante a colagem na caixa de entrada de chave do github, removi a última nova linha usando backspace, que na verdade mudou a chave pública.

Portanto, sempre copie e cole a chave pública ssh sem remover a última nova linha.


0

Para mim, eu estava tendo problemas com a VPN da empresa, após desligar funcionando bem.

Verifique a conexão com o github usando o comando ssh -vvvT git@github.com


0

Mudar para o uso de obras https. Primeiro mude para https em vez de chaves SSH. git remote set-url origin

Em seguida, ele solicitará o nome de usuário e a senha do git.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.