Git: Permissão negada (chave pública) fatal - Não foi possível ler no repositório remoto. ao clonar o repositório Git

153

Não consigo clonar um repositório Git e obtendo este erro:

krishna.soni@KRISHNACHANDRAS /c/Projects $ git clone http://stage.abc.com:10088/pqr
http://<url>/<repository> Cloning into '<repository>'... fatal: could not read Username for 'http://<url>': No such file or directory

Eu li Bitbucket, Windows e "fatal: não foi possível ler a senha para" , mas ainda tenho o problema.

Continuei, mas agora estou recebendo esse erro

sh.exe": chown: command not found

krishna.soni@KRISHNACHANDRAS /c
$ git clone ssh://[email protected].
/projects
Cloning into 'C:/projects'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

> krishna.soni@KRISHNACHANDRAS /c
>     $ git clone ssh:<url>
>     ts
>     Cloning into 'C:/projects'...
>     Permission denied (publickey).
>     fatal: Could not read from remote repository.

Please make sure you have the correct access rights

e o repositório existe.

KCS
fonte
Você tem certeza de que é um repositório git?
gravetii
Sim, ele é . Eu sou novo no git, recebendo esse erro durante a clonagem. Adicionei email e nome no arquivo de configuração global usando os comandos git config --global user.name "John Doe" $ git config --global user.email [email protected]
KCS
O principal motivo é que o repositório não pode reconhecê-lo como usuário do servidor git. Você pode acessar o servidor via ssh?
Малъ Скрылевъ
Se alguém tiver esse problema enquanto estiver usando o Github, siga as etapas mencionadas aqui: help.github.com/en/articles/… Funcionou para mim.
Rounak 6/03/19

Respostas:

69

Parece um problema de permissões - não um problema do Windows 7.

Sua chave ssh não está autorizada - Permission denied (publickey).

Você precisa criar uma chave pública ssh e pedir ao administrador do repositório Git para adicionar a sshchave pública

Informações sobre como fazer isso: Falha ao salvar a chave ssh

Primeiro Zero
fonte
27
Isso é estranho. O repositório é público e estou clonando o repositório público. Não sei por que pedir permissão ao administrador para clonar seu repositório público hospedado no Github.
Shailen 30/07/2014
5
Sim, é falso, você não precisa perguntar nada ao administrador, é um problema com o git local.
Ivan Castellanos
3
Por que isso é difícil? Eu consegui, mas não foi indolor.
Niklas R.
9
Você não precisa autorizar uma chave para repos públicas, é só usar o protocolo HTTPS: stackoverflow.com/a/33072867/1385678
Diego V
225

Para as pessoas que vêm aqui que estão apenas tentando obter o repositório, mas não se importam com o protocolo (ssh / https), convém usar https em vez de ssh (se houver suporte).

Então, por exemplo, você usa

git clone https://github.com/%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

ao invés de

git clone [email protected]:%REPOSITORYFOLDER%/%REPOSITORYNAME%.git
Arjan
fonte
6
Este é o plano de fallback mais apropriado se as permissões ssh não forem resolvidas ou se você quiser pular essa parte.
Wahib Ul Haq
13
Esta resposta mudou o mecanismo de sshpara https. Não está resolvendo o problema original usando o ssh para acessar o repositório. Gostaria de saber como isso pode continuar sendo votado como uma boa resposta para a pergunta. As outras respostas abaixo estão resolvendo-o corretamente.
Armin
3
O problema original é um novato git tentando clonar um repo. Se o objetivo é retirar um repositório público, esta é a resposta mais rápida e eficaz.
Vivek Chavda
Obrigado por me salvar do suicídio. A propósito, isso pode ser usado para um repositório particular, desde que você tenha o nome de usuário e a senha.
Bill WAGNER
81

Se ainda houver problemas no acesso após a criação do SSH e a adição na sua conta Bitbucket ou em qualquer outro lugar, faça o seguinte no terminal no GitBash, OSX ou Linux:

# Lists already added identities (‘ssh keys’)
ssh-add -l

Em seguida, se você não vê sua chave listada, adicione-a com o seguinte (substitua identitypelo nome real):

# Add a new identity
ssh-add ~/.ssh/identity

Isso funcionou para mim.

Srikanth Kondaparthy
fonte
3
ssh-add ~/.ssh/identityerro de retorno/Users/lee/.ssh/identity: No such file or directory
lee
14
Executar "ssh-add" em "~ / .ssh" (e digitar a senha do meu arquivo "~ / .ssh / id_rsa" quando solicitado) resolveu o problema para mim.
precisa saber é o seguinte
1
Consegui puxar meu repo, mas não empurre sem fazer isso, felicidades!
precisa
@ James Furey resposta me ajudou o sourcetree a identificar o URL ssh como um repositório Git.
YSR fan
2
trabalhou para mim ... depois de horas suando e tentando coisas diferentes. A única coisa é que, em vez de identidade, no final, use o nome em seu próprio sistema. Vá para a pasta .ssh executando o comando cd no terminal e digite o comando 'ls' no terminal. E então repita a "identidade" do comando acima com seu próprio arquivo. Ir para sourcetree terminal e: cd ~em seguida, cd .sshem seguida, lsem seguida, (copiar o nome sem pub extensão) então (executar este comando)ssh-add ~/.ssh/(copied name)
Tejas
21

Eu enfrentei o mesmo problema com o GitHub . Veja como resolvê-lo!

  1. Gere uma chave SSH no seu computador, conforme descrito aqui: Gerando chaves SSH .
  2. Faça login na sua conta do GitHub : Faça login no GitHub .
  3. Na sua conta, adicione a Chave SSH recém-gerada: Chaves SSH da minha conta .
  4. Tente novamente para git cloneo projeto.
Maxime
fonte
Trabalhou como charme !!
Prakhar
1
Agora, usei essa resposta em três novos sistemas operacionais nos últimos 5 anos e sempre funcionou perfeitamente.
kotoole
Aparentemente, o High Sierra exige que o usuário registre a chave no arquivo .ssh / config. El Capitan de alguma maneira conseguiu sem ele.
dsomnus 18/06
14

Eu tive esse problema em um Mac - enquanto eu configuro o SSH corretamente para acessar meu repositório Git, após a reinicialização (e algum tempo o Mac estava em um impasse), todas as minhas credenciais foram removidas. Aparentemente, por algum motivo, a chave do pub foi definida como 644, o que fez com que ela fosse removida do chaveiro. Para ler:

  • chmod 600 a chave pública
  • ssh-add ~/.ssh/[your private key]- isso deve mostrar que a identidade foi adicionada. O arquivo de chave que você deseja é aquele sem a extensão .pub.
  • ssh-add -l deve mostrar a identidade recém-adicionada

edit: aparentemente o MacOS tem tendência a remover chaves - depois de baixar a atualização High Sierra (mas ainda não a instalei) minha chave foi removida e tive que adicioná-la novamente via ssh-add

eithed
fonte
2
Esta solução ainda é precisa após o upgrade do macOS High Sierra para a versão 10.13.1. Especificamente, o Sourcetree foi o aplicativo que apareceu no problema quando tentei enviar uma confirmação para um repositório remoto. As etapas acima corrigiram o problema para mim.
Paul Bonneville
Eu tive esse problema na versão 10.13.4 e esta solução funcionou para mim.
Andrew Ebling
11

Eu também enfrentei o mesmo problema. Fiz o seguinte e funcionou para mim:

  1. Gere chaves do cliente GIT GUI no Windows. Copie esta chave para a área de transferência.
  2. Abra sua conta no bitBucket/site git e adicione essa chave ao seu perfil. Dessa forma, o servidor sabe que você é um usuário legítimo acessando de um sistema legítimo.
  3. É isso aí. Todos os comandos push funcionaram para mim a partir de agora.
Ashwin Tumma
fonte
Isso me ajudou a ver que eu havia gerado meu RSA sem executar o Git Bash como administrador, que colocou minha chave RSA na unidade "h": oops:
tylerlindell
7

Para mim, quando eu queria clonar no meu repositório, a mesma mensagem foi notada antes de "Permissão negada (chave pública) fatal: não foi possível ler no repositório remoto". A solução para o meu caso é não usar o sudo antes do clone. É isso.

mustapha
fonte
Muito obrigado @mustapha, você realmente economiza meu tempo.
vinay kumar 20/04
7

O Github (ou Bitbucket) não consegue encontrar sua chave ssh no servidor deles.

Basta adicionar sua chave na configuração da sua conta.

jsxqf
fonte
6

Se você gerar uma nova chave pública ssh e inseri-la no bitbucket ou no github e

não ajudou - tente reiniciar o seu PC . Isso me ajudou !!

nicolas asinovich
fonte
Obrigado, era isso que eu precisava fazer também.
Steph
Eu tive que fechar o terminal e abrir um novo para vê-lo funcionando.
rahul
5

Você precisa criar uma nova chave ssh executando ssh-keygen -t rsa.

biniam
fonte
A referência de @Joel Heroku foi removida. Graças
Biniam
4

Eu recebi o erro ...

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

... quando eu estava tentando fazer contato de um prompt do Git Bash com o Bitbucket depois que meu laptop morreu de uma atualização ruim do Windows 10 e voltou às configurações de fábrica. Eu havia restaurado todos os meus arquivos ssh de um backup.

A causa do erro acabou sendo uma incompatibilidade no nome da minha conta do Windows após a reconstrução do computador. Aprendi que o arquivo de chave pública id_rsa.pubtermina com uma sequência de fácil leitura, compreendendo o nome da minha conta do Windows, seguida por um @sinal e o nome do computador.

Quando configurei meu computador originalmente, criei o nome da minha conta do Windows, incluindo a inicial do meio, mas quando o computador foi redefinido para as configurações de fábrica, nosso novo cara do DevOps criou o nome da minha conta sem a inicial do meio.

Para resolver o problema, simplesmente editei meu arquivo de chave pública id_rsa.pube removi a inicial do meio em meu nome no final. Eu tinha ficado com o mesmo nome de computador, então estava tudo bem. Copiei o conteúdo do arquivo para a área de transferência do Windows. Então, entrei no Bitbucket, fui para Configurações do Bitbucket no meu avatar e adicionei uma nova chave pública na qual colei o novo conteúdo.

De volta ao prompt do Git Bash, confirmei que agora funcionava inserindo o comando ...

ssh -T [email protected]

... e recebi uma mensagem informando que estava conectado.

Ken A Collins
fonte
4

No macOS / Linux (Ubuntu):

1. Para autenticar, você precisa adicionar sua parte pública do seu par de chaves SSH ao bitbucket nas configurações do usuário: Configurações do usuário -> Chaves SSH

Você encontrará a referida parte pública em seu diretório ~ / .ssh, normalmente id_rsa.pub. observe a .pubparte do nome do arquivo para Public. isso ajudará você a gerar um se você ainda não tiver um

Você ainda não terminou ...

2. Você precisa informar ao sistema qual chave usar com qual host remoto, portanto, adicione essas linhas ao seu arquivo ~ / .ssh / config

Host bitbucket.org
 IdentityFile ~/.ssh/PRIVATE_KEY_FILE_NAME

Onde PRIVATE_KEY_FILE_NAMEestá o nome da parte privada do seu par de chaves SSH, se você não mexeu com ele, geralmente o nome padrão é: id_rsa nesse caso, substitua PRIVATE_KEY_FILE_NAMEacima por id_rsa(a chave privada NÃO possui uma .pubextensão)

ninjayoto
fonte
Nota, você grafada "Ubuntu" - edições deve ter pelo menos 6 caracteres, então não posso sugerir a edição :)
Misha Nasledov
4

Tópico útil e não trago muita novidade para a mesa. O passo que eu dei também faz parte da descrição que Maxime aponta prestativamente, mas alguns podem ignorar. A seção é Adicionando sua chave SSH ao ssh-agent .

Eu já havia gerado minha chave ssh, mas após uma reinicialização não consegui clonar um de meus próprios repositórios.

Eu tive que iniciar o ssh-agent e adicionar a chave privada a esse agente para clonar.

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
kometen
fonte
3

Eu enfrentei o mesmo problema ao executar o git clonecomando na linha de comando do Windows. Mas o comando é executado com sucesso no Git Bash .

lazyvab
fonte
3

Eu tive o problema semelhante. Alterei as teclas ssh e reiniciei e tentei todas as outras soluções 'n'. Mas o problema real para mim foi nosso protocolo padrão do gitlab alterado de ssh para https.

verifique o URL remoto com

git remote -v

alterar o URL remoto

git remote set-url origin https://URL
nantitv
fonte
É perfeito, não precisamos configurar o ssh.
Rohit Parte
Eu tive que fazer o mesmo. A chave ssh não estava funcionando para mim neste caso
Dani
fatal: incapaz de acessar ' bitbucket.org:xxxxxx/xxxxxxxxtxt ': o número da porta terminou com 'r'
nosequeweaponer
2

Se tudo falhar, como foi o meu caso, desinstale o GIT, reinstale. Por algum motivo, isso corrige.

PS

  1. Tentei gerar novas chaves e atualizar em chaves públicas SSH
  2. Também tentou excluir todas as chaves e tentou criar uma nova chave.
  3. E NÃO, nada de errado com o meu .gitconfig
Ronak Agrawal
fonte
2

correção para a hubferramenta CLI:

  • git config --global hub.protocol https para longo prazo
  • git remote add OOPS https://github.com/isomorphisms/go.git&& git push OOPSpara correção imediata

Este erro ocorre com a hubferramenta de linha de comando devido ao hub.protocolvalor padrão incorreto do git-config. Eles definem repositórios para

git://github.com/schacon/ticgit.git

em vez do que o github realmente aceita, a saber https://github.com/schacon/ticgit.git.


A leitura LESS=+/"HTTPS instead" man hubexplicará de onde vem o comando "correção a longo prazo" acima.

isomorfismos
fonte
Isso salvou meu dia!
Jay Lee
1

Durante a clonagem, tive um problema semelhante [meu ERRO: Permissão negada (chave pública). fatal: Não foi possível ler do repositório remoto. Por favor, verifique se você possui os direitos de acesso corretos .. etc]

- Eu estava usando o bitBucket / UBUNTU14.04 no meu caso, mas tinha um conjunto de arquivos-chave que eu havia gerado anteriormente E alterei o nome dos arquivos. Simplesmente copiei os arquivos no formato padrão de nome id_rsa e id_rsa.pub. Em seguida, executei novamente o comando sem problema.

OBTW : Eu também poderia ter usado o prompt de senha usando o clone do estilo HTTP.

Jorge de la Torre
fonte
0

Eu tive um problema semelhante no linux. Resolvi o problema efetuando login no servidor github e criando uma chave de implantação. Isso está nas configurações do repositório. Em seguida, copiei e colei minha chave pública (que geralmente está em ~ / .ssh / id_rsa.pub, mas sua configuração pode ser diferente). Há uma caixa de seleção para conceder a essa chave acesso de gravação. Clique nele (a menos que você esteja usando o git para implantar apenas; nesse caso, não clique nele).

user1928764
fonte
0

Eu tive o mesmo erro. Minha solução foi sair e efetuar login novamente, pois meu ssh-agent ficou fora de sincronia com a chave ssh remota.

Adicionando isso aqui, caso alguém tenha visto que as outras respostas parecem não se aplicar à sua situação.

Martlark
fonte
0

Eu estava enfrentando o mesmo problema ao configurar o ssh para o gitlab. Eu já tenho o ssh githube não pude substituir isso. Os passos que funcionaram para mim são:

  1. Gere SSH com o novo caminho e adicione-o à lista ssh ssh-add /path/to/new/id_rsa.
  2. Crie um arquivo chamado configno ~/.ssh/uso. Eu usei vi ~/.ssh/config/.
  3. Adicione isso ao arquivo recém-criado

# GitLab.com server Host gitlab.com RSAAuthentication yes IdentityFile /path/to/new/id_rsa

  1. Salve e saia.

Depois disso, reinicie o terminal e tente empurrar, ele deve funcionar

Ishwar Rimal
fonte
0

Se você deseja clonar projetos de código aberto para enviar uma solicitação de recebimento:

Queria clonar um projeto de código aberto para poder enviar algumas solicitações de recebimento. O problema era que eu não tinha permissões do proprietário do projeto. Não importa, já que minha intenção era enviar um PR, eis uma alternativa viável:

Minha solução:

  1. Repositório de Forquilhas

Repo Fork

  1. Em seguida, clone do seu repositório bifurcado. Clone do Repo bifurcado

  2. Trabalhe em seus recursos e envie uma solicitação de recebimento.

BKSpurgeon
fonte
0

Você pode tentar adicionar sua chave ssh ao seu chaveiro privado. Funcionou para mim

ssh-add -K ~/.ssh/[your-private-key]
Ankur Kedia
fonte
"opção desconhecida - K"
Jiří Doubravský 26/11/19
0

solução: no servidor que você está tentando clonar ou enviar a partir de cat ~ / .ssh / id_rsa.pub Vá para GitHub, configurações, chaves SSH e GPG , nova chave de colar chave SSH .

user5854766
fonte
0

Vejo que esta mensagem de erro tem vários motivos diferentes. Eu tive o mesmo erro ao tentar configurar localmente outro repositório ao lado de um que já estava totalmente trabalhando com o ssh etc. e conectá-lo ao mesmo servidor, mas a outro repositório. Nenhuma resposta foi encontrada aqui, mas eu descobri. Então eu publico. Espero que ajude alguém.

git remote add origin [email protected]:teamalpha/repositorytwo.git
uldics
fonte
0

se nenhuma dessas respostas ajudar e

  1. você está usando o Windows
  2. você gera sua chave com o Putty ou instalou o Putty no seu PC
  3. você gera sua chave com CMD ou PowerShell

Experimentar

  1. apague suas chaves
  2. pesquise nas janelas o Git Bash e gere uma nova chave com a linha de comando do Git Bash
  3. adicione chave pública ao seu repositório online

Em seguida, você encontrará depois do git clone e digitar yes para confirmar, ele deve começar a clonar

Fadeoc Khaos
fonte
-2

Pode ser estúpido, mas aconteceu conosco:

Se você estiver usando bitbucket e Sourcetree e apenas copiar e colar o URL do clone na nova caixa de diálogo de repo, ele mostrará o mesmo erro ao puxar ou empurrar.

Certifique-se de excluir o material 'git clone' antes do URL.

Mijail
fonte