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?

Alex
fonte
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 "[email protected]"
Depois de
Tive esse erro depois de mudar os repos para os endereços [email protected] 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
Vishnu
fonte
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.

Onkar_M18
fonte
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

Lovekush Vishwakarma
fonte
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

Jacek Góraj
fonte
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

RyPope
fonte
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.

Mudassir Razvi
fonte
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!

Parasrish
fonte
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 [email protected]: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.

Obinna Nnenanya
fonte
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 [email protected]

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

Albert
fonte
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 :)

BoltzmannBrain
fonte
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!

Paris Qian Sen
fonte
2

adicione estas linhas ao seu .get/configarquivo (graças a @kovshenin, responda Git Pull: Change Authentication ):

[credential]
    helper = wincred
Khaled AbuShqear
fonte
Ou ~ / .gitconfig
Marcos
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.

Vedha Peri
fonte
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!

Shivam
fonte
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.

John Doe
fonte
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 protected]"

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 [email protected]: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

Gurjinder Singh
fonte
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

Sébastien Gicquel
fonte
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.

mito
fonte
0

use sua origem https em vez do url ssh

exemplo:

git remote add origin  https://gitlab.com/user/folder.git
Stilo bit
fonte
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 [email protected]e 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.

Duc Trung Mai
fonte
0

Adicionar a chave ssh funcionou para mim. Você pode criar uma chave ssh com o comando ssh-keygen no mac. Você deve ser capaz de ver o menu Implementar chaves em YourRepository> Settings, não se esqueça de marcar a opção Allow write access.

captura de tela do menu de teclas de implantação

tlrmacl
fonte
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.

Amreesh Tyagi
fonte
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 [email protected]

rana_stack
fonte
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.

Stephen Mwangi Wanjohi
fonte