Alguém viu esse erro e sabe o que fazer?
Estou usando o terminal, estou na raiz, o repositório GitHub existe e não sei o que fazer agora.
> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Respostas:
O GitHub não pode autenticar você. Portanto, você não está configurado com uma chave SSH, porque não configurou uma na sua máquina ou sua chave não está associada à sua conta do GitHub.
Você também pode usar o URL HTTPS em vez do URL SSH / git para evitar ter que lidar com chaves SSH. Este é o método recomendado pelo GitHub .
Além disso, o GitHub possui uma página de ajuda específica para essa mensagem de erro e explica com mais detalhes tudo o que você pode verificar.
fonte
ssh -vT [email protected]
na página de ajuda do Github para ajudar a depurar qual chave seu repositório está usando. Sugiro que você o adicione na sua resposta.ssh -vT [email protected]
fornece muitas informações sobre o motivo de não estar funcionando.Você criou um arquivo de configuração no diretório ~ / .ssh? Deveria ter conteúdos como estes:
Supondo que você tenha criado uma chave ssh chamada github_rsa
e carregou no GitHub ...
NOTA: Você deve seguir este modo de configuração explícita se tiver mais de 1 chave (2 e mais) no diretório ~ / .ssh /. Se você não especificar a chave dessa maneira, a primeira chave em ordem será usada e usada para autenticação do github; portanto, depende do nome do arquivo da chave.
fonte
ssh -T [email protected]
responda corretamente, enquantogit push -u origin master
dá o mesmo erro que na pergunta. Por que posso conectar-me a ele corretamente, mas não consigo pressioná-lo ou buscá-lo?Eu sei sobre esse problema. Depois de adicionar a chave ssh, adicione sua chave ssh ao agente ssh (nos documentos oficiais )
Depois que tudo funciona bem, o git pode visualizar a chave adequada, antes não podia.
fonte
ssh-agent -s
ssh-add ~/.ssh/github_rsa
Você precisa gerar uma chave SSH (se não tiver uma) e associar a chave pública à sua conta do Github. Veja a documentação do Github .
fonte
Isso aconteceu comigo. Por alguma razão, minha origem ficou confusa sem que eu percebesse:
Verifique se suas configurações ainda estão corretas
o URL precisa ser algo como ssh: //[email protected]/YourDirectory/YourProject.git; se você não vir [email protected], use
para acertar. Ou você pode usar o aplicativo github para verificar e definir o URL do Repositório Remoto Principal no painel de configurações do seu repositório específico.
fonte
Supondo que você esteja conectando o GitHub por SSH, você pode executar o comando abaixo para confirmar isso.
Se você obtiver um resultado com o seguinte formato [email protected]: xxx / xxx.github.com.git, faça o seguinte.
Gere uma chave SSH (ou use uma existente). se você tiver uma, basta adicionar sua chave ao ssh-agent (etapa 2) e à sua conta do GitHub (etapa 3).
abaixo são para quem não tem chave SSH.
Etapa 1 Gerando par de chaves rsa pública / privada.
Você será solicitado a confirmar onde salvar a chave SSH e qual a senha que deseja usar.
Etapa 2 Adicione sua chave ao ssh-agent
Verifique se o ssh-agent está ativado
$eval "$(ssh-agent -s)"
Adicione sua chave SSH ao ssh-agent:
$ssh-add ~/.ssh/id_rsa
Etapa 3 Adicione sua chave SSH à sua conta
$sudo apt-get install xclip
$xclip -sel clip < ~/.ssh/id_rsa.pub
Em seguida, adicione a chave copiada ao GitHub
Vá para Configurações -> Chaves SSH (barra lateral Configurações pessoais) -> Adicionar chave SSH -> Preencha o formulário (a chave está na sua área de transferência, basta usar ctrl + v) -> Adicionar chave
Depois de seguir as etapas acima, você deve resolver o problema de permissão.
Link de referência: Gerando chaves SSH .
fonte
cat ~/.ssh/id_rsa.pub
Primeiro, precisamos verificar as chaves ssh existentes no seu computador. Abra o Terminal e execute:
e isso listará os arquivos no diretório .ssh
E, finalmente, dependendo do que você vê (no meu caso):
Apenas tente configurar seu RSA e espero que isso resolva os problemas de "git push origin"
$ ssh-keygen -lf ~/.ssh/github_rsa.pub
NOTA: Os certificados RSA são emparelhados com chaves, portanto, você terá um certificado público e um privado, o privado não estará acessível para você, pois pertence ao github (neste caso), mas é o público que pode estar faltando quando esse erro ocorre (pelo menos esse foi o meu caso, minha conta ou repositório no Github ficou confusa de alguma forma e tive que "vincular" a chave pública, gerada anteriormente)
fonte
SHA
saída para o github deste comando?Eu estava recebendo esse erro. Acontece que eu havia acabado de atualizar o OSX para o Sierra e minha chave antiga não estava mais registrada.
No começo, eu pensei que era "Atualizar para o macOS Sierra quebrará suas chaves SSH e bloqueará você de seus próprios servidores"
Mas eu tinha evitado esse. Acontece que eu apenas tive que registrar novamente minha chave existente:
ssh-add -K
E digite a senha ... pronto!
fonte
Outra solução:
crie as chaves SSH, digite
ssh-keygen -t rsa -C "[email protected]"
. Isso criará os arquivos id_rsa e id_rsa.pub.Adicione o id_rsa à lista ssh no computador local:
ssh-add ~/.ssh/id_rsa.
Depois de gerar as chaves, obtenha a pubkey usando:
você receberá algo como:
copie essa chave (valor) e vá para github.com e, na configuração (chave ssh e pgp), adicione sua chave pública.
fonte
Caso você não esteja acessando seu próprio repositório ou clonando dentro de um repositório clonado (usando alguns comandos "git submodule ..."):
No diretório inicial do seu repositório:
1. Abra ".gitmodules" e você encontrará algo parecido com isto:
Altere a última linha para ser o HTTPS do repositório que você precisa extrair:
Salve ".gitmodules" e execute o comando para submódulos, e ".git" será atualizado.
2. Abra ".git", vá para o arquivo "config" e você encontrará algo parecido com isto:
Altere a última linha para ser o HTTPS do repositório que você precisa extrair:
Portanto, neste caso, o principal problema é simplesmente com o URL. O HTTPS de qualquer repositório pode ser encontrado agora na parte superior da página do repositório.
fonte
isso funcionou para mim:
1- remova todas as origens
(veja https://www.kernel.org/pub/software/scm/git/docs/git-remote.html )
* remote: "Gerencie o conjunto de repositórios (" controles remotos ") cujas ramificações você rastreia.
* rm: "Remova o controle remoto chamado. Todas as ramificações de rastreamento remoto e as definições de configuração do controle remoto foram removidas."
2- verifique se tudo foi removido:
3- adicionar novo mestre de origem
isso é tudo, pessoal!
fonte
Certificar-se de que
ssh-add -l
mostra uma impressão digital de uma chave SSH presente na lista de chaves SSH da sua conta do Github.Se a saída estiver vazia, mas você sabe que possui uma chave SSH privada que funciona com sua conta do github, execute
ssh-add
essa chave (encontrada em~/.ssh
. É nomeadaid_rsa
por padrão, portanto, você provavelmente executarássh-add id_rsa
).Senão, siga estas instruções para gerar um par de chaves SSH.
fonte
Eu estava usando o github anteriormente para um dos meus projetos php. Ao usar o github, eu estava usando ssh em vez de https. Eu tinha minha máquina configurada assim e toda vez que eu costumava confirmar e enviar o código, ela me perguntava minha senha de chave rsa.
Depois de alguns dias, parei de trabalhar no projeto php e esqueci minha senha rsa. Recentemente, comecei a trabalhar em um projeto java e mudei para o bitbucket. Como esqueci a senha e não há como recuperá-la , decidi usar o protocolo https (recomendado) para o novo projeto e obtive o mesmo erro solicitado na pergunta.
Como eu resolvi isso?
Executei este comando para dizer ao meu git para usar https em vez de ssh:
Remova qualquer controle remoto, se houver
Refaça tudo, desde o git init ao git push e funciona!
PS: Também desinstalei o ssh da minha máquina durante o processo de depuração, pensando que, removê-lo, resolverá o problema. Sim eu conheço!! :)
fonte
Problema resolvido se você alterar o acesso ssh para acesso https ao repositório remoto:
fonte
Acho que tenho a melhor resposta para você, seus aplicativos git leem seu id_rsa.pub no diretório raiz do usuário
É por isso que sua chave em /home/seu_username/.ssh/id_rsa.pub não pode ser lida pelo git. Então, você precisa criar a chave em /home/root/.ssh/
Em seguida, copie a chave na sua conta do github. Funcionou para mim. Você pode experimentá-lo.
fonte
Se você já criou uma chave SSH e ainda está recebendo o erro, é porque precisa conceder ao usuário permissões para ler e gravar na pasta na qual está clonando. Para fazer isso
sudo chmod 777 <your_folder_name_here>"
. Obviamente, isso ocorre depois que você gerou uma chave SSH e ainda está recebendo esse erro. Espero que isso ajude futuros usuários.Editar
Para adicionar isso, use admin no Windows se você estiver usando o git bash
fonte
sudo chown -R $USER:$USER <your_folder_name_here>
Eu tive o mesmo problema recentemente. Isso pode ajudar se você precisar de uma correção imediatamente, mas isso deve ser feito sempre que você reiniciar o sistema
Do terminal, execute:
ssh-add ~/.ssh/id_rsa
Digite a senha do sistema e isso deve funcionar.
fonte
Gostaria de adicionar algumas das minhas descobertas:
Se você estiver usando
GitBash
, verifique se a chave SSH está armazenada em~/.ssh/id_rsa
.Por padrão,
GitBash
procura~/.ssh/id_rsa
como caminho padrão a chave SSH.Até o nome do arquivo é
id_rsa
importante. Se você salvar sua chave SSH em outro nome de arquivo ou caminho, ele emitirá oPermission Denied(publickey)
erro.fonte
OK, existem poucas soluções para essa, algumas delas já podem ter sido mencionadas, mas apenas para mantê-las juntas:
verifique se as chaves estão presentes, por padrão outra pasta ~ / .ssh /, ou seja, id.rsa e id.rsa.pub
verifique se as chaves possuem permissões corretas, você pode executar o chmod:
chmod 600 ~ / .ssh / id_rsa
chmod 644 ~ / .ssh / id_rsa.pub
verifique se o conteúdo da sua chave pública (id_rsa.pub) corresponde ao carregado na configuração do repositório remoto
Finalmente, corrija os problemas com o agente ssh : ssh-add
Mais informações: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html
fonte
chmod
como você descreveu. Obrigado.Se você estiver usando a interface do usuário do GitHub for Mac, verifique as preferências para verificar se está logado.
fonte
Eu estava recebendo o mesmo erro durante o 'git push'. No lado do cliente, eu tinha duas origens e mestre. Eu removi um, então funcionou bem.
fonte
você pode usar o URL Https para fazer login
Eu acho que você está tentando fazer login com o ssh url quando diz git push, se pedir apenas a senha, considere que você está se conectando através do ssh.better, use o http url.
fonte
Também no ubuntu, apesar de já haver uma chave SSH inserida nas configurações do BitBucket, eu tenho esse problema. O motivo foi que eu estava tentando o seguinte:
Não sei por que, mas foi resolvido usando
Nenhum sudo usado.
fonte
Para mim, eu tentei isso -
então eu corro
e para gerar a chave você pode executar
isso irá gerar o par de chaves (pública e privada).
você pode armazenar essa chave no github para mais informações. Leia Adicionando uma nova chave SSH à sua conta do GitHub
Espero que ajude os outros :)
fonte
Eu estava tendo um problema semelhante ao @Batman. No entanto, como eu estava executando isso em / usr / local / src / projectname, executar sem o sudo não era uma opção.
Basta adicionar o sinalizador -E para preservar o ambiente (seu ~ / .ssh / path).
$ sudo -E git clone git@your_repo
Do man sudo:
fonte
Um cenário em que isso acontecerá é quando você seguir as instruções do GitHub depois de criar seu repositório. O Git instruirá você a adicionar seu controle remoto com algo assim.
git remote add origin [email protected]:<user>/<project>.git
Substitua o que está em <> pelos valores relacionados à sua conta.
A solução é remover o
.git
sufixo. Adicione o controle remoto da seguinte maneira:git remote add origin [email protected]:<user>/<project>
fonte
tl; dr
em
~/.ssh/config
colocarCenário Se você estiver usando uma versão do openSSH> 7, como digamos no MacBook Pro da barra de toque, é
ssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0
Você também tinha um Mac antigo que originalmente tinha sua chave que você colocou no Github, é possível que esteja usando uma chave id_dsa. O OpenSSH v7 não substitui por padrão o uso dessas chaves DSA (que incluem isso
ssh-dss
), mas você ainda pode adicioná-lo novamente colocando o código a seguir em seu~/.ssh/config
A fonte que funcionou para mim é esta newsletter do Gentoo
Agora você pode pelo menos usar o GitHub e depois consertar suas chaves no RSA.
fonte
Encontrei esta página ao procurar uma solução para uma mensagem de erro semelhante usando
git pull
um host remoto:Eu estava conectado da minha máquina local ao host remoto via
ssh -AY remote_hostname
. Esta não é uma solução para a pergunta do OP, mas útil para outras pessoas que se deparam com esta página, portanto, poste-a aqui.Observe que, no meu caso,
git pull
funciona bem na minha máquina local (ou seja, a chave ssh foi configurada e adicionada à conta do GitHub, etc.). Resolvi meu problema adicionando isso ao~/.ssh/config
meu laptop:Em seguida, reconectei-o ao host remoto
ssh -AY remote_hostname
egit pull
agora trabalhei. A alteração na configuração permite encaminhar meu par de chaves ssh da minha máquina local para qualquer host. A-A
opção dessh
realmente encaminhar nessa sessão ssh. Veja mais detalhes aqui.fonte
Talvez o seu agente ssh não esteja ativado Você pode tentar
http://git-scm.com/
Instale-o
Ativar ssh-agent
C: \ Arquivos de programas \ Git \ cmd
start-ssh-agent
fonte
Vá para o painel da sua conta do GitHub, encontre o repositório do projeto, clique na guia Configurações - em Implantar chaves, você precisará adicionar sua chave SSH. Abra o Terminal e digite:
Isso copiará a chave do seu arquivo id_rsa.pub. Então, basta voltar ao painel do GitHub, colá-lo, clicar em Adicionar chave e pronto.
A mesma solução se aplica às contas Bitbucket.
fonte