Pesquisei por muitas horas seguidas procurando uma solução para o meu problema aparentemente fácil de corrigir. Não é que minha pesquisa tenha revelado nada, é que minha pesquisa tenha apresentado tantas soluções diferentes - nenhuma das quais funcionou.
De qualquer forma, sou simplesmente incapaz de empurrar, puxar ou buscar do meu repositório Heroku do meu Mac. Toda tentativa me dá (como se estivesse zombando de mim) o seguinte erro:
'Permissão negada (chave pública). fatal: Não foi possível ler no repositório remoto. '
Eu tentei (e tentei novamente) corrigi-lo de várias maneiras diferentes. Como já disse, passei boa parte dos últimos dois dias procurando uma resposta. Aqui estão algumas das coisas que eu tentei:
- chaves heroku: limpe seguido de chaves heroku: adicione
- Regenerando uma chave ssh sozinha com 'ssh-keygen -t rsa'
- Limpando meu diretório .ssh, seguido pelas chaves heroku: clear, seguido pela geração de uma chave ssh
- Excluir meu aplicativo no heroku e recriar um (felizmente não havia muito lá)
Posso buscar do meu repositório GitHub corretamente, então eu sei que não é conectividade de rede (executar ping heroku também funciona).
Como uma solução improvisada (que, espero, não se torne permanente), entrei na minha instância do Ubuntu Amazon AWS ec2. Puxar e empurrar de e para Heroku funciona perfeitamente. Por esse motivo, ainda sinto que o problema está na tecla ssh no meu Mac. Ambas as teclas aparecem na minha conta Heroku. O endereço de email no final da chave é importante?
Edição: Eu posso empurrar e puxar do GitHub bem (eu não estou usando ssh, no entanto), então por que não Heroku?
Neste ponto, estou disposto a tentar qualquer coisa. Obrigado!
fonte
Respostas:
Eu sei que isso já foi respondido. Mas gostaria de adicionar minha solução, pois pode ser útil para outras pessoas no futuro.
Um erro de chave comum é:
Permission denied (publickey)
. Você pode corrigir isso usandokeys:add
para notificar o Heroku sobre sua nova chave.Em resumo, siga estas etapas: https://devcenter.heroku.com/articles/keys
Primeiro você precisa criar uma chave se não tiver uma:
Segundo, você precisa adicionar a chave ao Heroku:
fonte
heroku keys:add
ajudará você a criar uma se você não tiver uma chave.ssh-keygen -t rsa
, se oRSA
não é gerada de outra formaheroku keys:add
deve ser suficientesEu apenas pensei em compartilhar que encontrei a resposta para minha própria pergunta.
Escrever o meu problema tornou-o ainda mais claro, e eu investiguei ainda mais onde eu achava que estava o meu problema: a chave ssh
Acontece que eu estava certa. O problema não era com a chave em si, mas com o fato de eu não a ter adicionado à lista de chaves ssh conhecidas do meu Mac local. Portanto, mesmo que minha conta Heroku tenha a chave correta carregada, meu Mac não pôde se autenticar com ela porque não encontrou essa chave no meu computador. A solução?
Gostaria de dar crédito a https://help.github.com/articles/error-permission-denied-publickey por ser uma boa referência.
fonte
Git Bash
(clique com o botão direito do mouse em uma pasta) e iniciar umssh-agent
que seja possível executando`ssh-agent`
(lembre-se dos back-ticks) e, em seguida, adicione a chave conforme descrito acima. Eu tenho que fazer isso toda vez que inicio oGit Bash
/ssh-agent
, esquece o que foi adicionado.Eu tive exatamente o mesmo erro (no Windows 7) e a causa foi diferente. Eu o resolvi de uma maneira diferente, então pensei em adicionar a causa e a solução aqui para outras pessoas.
Mesmo que o erro parecesse apontar para heroku, na verdade, o erro estava dizendo
"Heroku can't get to the git repository"
. Eu jurei que tinha as mesmas chaves em todos os servidores porque criei e enviei para um após o outro ao mesmo tempo.Depois de passar quase um dia nisso, percebi que, porque o git estava apenas me mostrando a impressão digital e não a chave real. Não pude verificar se a chave corresponde à do meu HD ou heroku. Procurei no arquivo hosts conhecido e adivinhem ... ele mostra as chaves de cada servidor e pude ver claramente que as chaves públicas git e heroku não eram correspondentes.
1) Excluí todos os arquivos da minha pasta de chaves, a chave do github usando o site deles e a chave do heroku usando o git bash e o comando
heroku keys:clear
2) Siga as instruções do github aqui para gerar um novo par de chaves e fazer upload da chave pública para o git
3) usando
git bash-
heroku keys:add
para carregar a mesma chave no heroku.Agora
git push heroku master
funciona.que pesadelo, espero que isso ajude alguém.
Bryan
fonte
O problema que eu estava tendo é que eu estava usando apenas https na minha conta do GitHub. Eu precisava ter certeza de que minha conta do GitHub estava configurada para acesso ssh e que o GitHub e o heroku usavam as mesmas chaves públicas. Estes são os passos que tomei:
Navegue para o diretório ~ / .ssh e exclua o id_rsa e o id_rsa.pub, se houver. Comecei com novas chaves, embora possa não ser necessário.
Entre no heroku, crie um novo site e adicione suas chaves públicas:
fonte
Eu tive o mesmo caso no linux ubuntu e apenas o corrigi, parece que o sistema operacional estava confuso entre o /root/.ssh/ e home / user / .ssh / dir, o que fiz foi:
heroku keys
heroku keys:clear
heroku keys:add
agora, aqui, se o heroku não conseguiu encontrar uma chave e pediu para gerar uma não, e isso significa que você tem o mesmo problema que o meu, faça o comando add assim:heroku keys:add /root/.ssh/id_rsa.pub
o caminho que você adicionará será o que você obteve na etapa 2.git push heroku master
agorafonte
Meu caminho no Windows 8
Adicione um diretório com ssh-keygen à variável PATH do sistema, geralmente C: \ Arquivos de Programas (x86) \ Git \ bin
Abra o CMD, vá para C: \ Users \ Me \
Gerar chave SSH
ssh-keygen -t rsa
Digite o arquivo no qual salvar a chave (//.ssh/id_rsa): .ssh / id_rsa (altere um caminho incorreto padrão para .ssh / somegoodname_rsa)
Adicione a chave ao Heroku
heroku keys:add
Selecione uma chave criada em uma lista
Vá para o diretório do seu aplicativo, escreva um código bonito
Iniciar um repositório git
git init
git add .
git commit -m 'chore(release): v0.0.1
Criar aplicativo Heroku
heroku create
Implante seu aplicativo
git push heroku master
Abra seu aplicativo
heroku open
fonte
Teve um problema semelhante e tentei muitas coisas. Por fim, o que funcionou para mim foi instalar o Gnu no Windows ( https://github.com/bmatzelle/gow/releases ) e garantir que ele estivesse usando a ferramenta ssh dentro desse diretório e não a do Git. Depois de instalado, teste com (verifique se, no seu ambiente, PATH é anterior ao Git \ bin)
Eu usei massa e concurso como descrito aqui: http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/
Depois que as chaves foram enviadas para o heroku (chaves do heroku: adicione c: \ Users \ Person.ssh \ id_rsa.pub), use
e verifique se sua pilha está mostrando o uso de Putty - ou seja, uma pilha de trabalho:
Um que estava sendo executado anteriormente e falhou:
fonte
você precisa criar uma nova chave ssh digitando o seguinte - ssh-keygen -t rsa
Então você precisa adicionar: - heroku keys: add
Então, se você digitar - heroku open
O problema foi resolvido.
De qualquer forma, funcionou para mim, você pode tentar ...
fonte
Eu recebi o mesmo erro e, como tenho 4 chaves ssh, tentei seguir:
então, quatro opções são exibidas:
Eu escolho 3), o mais novo
Então, eu corrijo o erro.
fonte
Eu uso esse método para resolver esse problema Talvez você possa tentar
"Ativar ssh-agent"
http://git-scm.com/
Instale-o
Ativar ssh-agent
C: \ Arquivos de programas \ Git \ cmd
start-ssh-agent
A mensagem desaparece após a ativação do agente Espero que isso ajude você
fonte
Gostaria de adicionar outra solução, pois não a vi aqui. Meu problema era que o heroku estava vinculado ao URL errado (desde que eu continuava brincando com os nomes dos URLs). A edição do URL remoto resolveu meu problema:
fonte
Eu tive o mesmo problema. E tentei redefinir minhas chaves como todos disseram, mas ainda não funcionou. Pois foi porque eu renomeei o aplicativo.
Então, o que fiz foi redefinir minhas chaves e também renomear o aplicativo do console. Verifique esta pergunta para obter mais informações: Heroku push app problem
fonte
Portanto, solução tão simples, vá para c: /Users/user_name/.ssh/ e exclua todos os pares de chaves públicas / privadas, desta forma o heroku irá gerar chaves para você.
fonte
Eu tive um erro similar do heroku ssh que não consegui resolver.
Como solução alternativa, usei o novo recurso heroku http-git (transporte http para o controle remoto "heroku" em vez do ssh). Detalhes aqui: https://devcenter.heroku.com/articles/http-git
(Versão curta: se você já possui um projeto configurado da maneira padrão, execute heroku git: remote --http-init para alterar o "heroku" remote para http.)
Uma boa solução rápida, se você não tiver tempo para corrigir / solucionar um problema ssh.
fonte