git com IntelliJ IDEA: Não foi possível ler do repositório remoto


260

Desde algumas semanas, não consigo extrair ou enviar de ou para o repositório remoto. Eu pensei que isso aconteceu ao atualizar para o IntelliJ IDEA 14, mas também posso reproduzir o problema com o IDEA 13.1.5.

A dica de ferramenta diz "Falha na busca fatal: não foi possível ler no repositório remoto".

e a exceção na guia Controle de versão lê

14:02:37.737: cd C:\dev\project
14:02:37.737: git -c core.quotepath=false fetch origin --progress --prune
java.io.IOException: Padding in RSA public key!
    at com.trilead.ssh2.signature.RSASHA1Verify.decodeSSHRSAPublicKey(RSASHA1Verify.java:37)
    at com.trilead.ssh2.KnownHosts.addHostkey(KnownHosts.java:98)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:414)
    at com.trilead.ssh2.KnownHosts.initialize(KnownHosts.java:440)
    at com.trilead.ssh2.KnownHosts.addHostkeys(KnownHosts.java:137)
    at org.jetbrains.git4idea.ssh.SSHMain.configureKnownHosts(SSHMain.java:462)
    at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:155)
    at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Usando o terminal interno do IntelliJ, executando git -c core.quotepath=false fetch origin --progress --prune, ele funciona exatamente como deveria.

De acordo com o stacktrace, parece haver um problema com o meu KnownHosts, então excluí nosso servidor git ~/.ssh/known_hosts, esperando que o IntelliJ o insira novamente. Mas o problema ainda aparece durante a atualização via interface do usuário e não há nenhuma nova entrada gravada known_hosts; pensando em algum cache do arquivo, reiniciei o IntelliJ, sem êxito.

Ao fazer outro git fetchno terminal, agora estou sendo perguntado se quero adicionar permanentemente o servidor. Depois disso, ele foi gravado known_hostsnovamente, mas o IntelliJ ainda não me permite atualizar meu projeto.

Não encontrei nada sobre esse comportamento online, então acho que não é um bug conhecido na nova versão do IntelliJ. No entanto, atualizei para 14.0.2, mas o problema ainda existe.

O IntelliJ está configurado para usar o executável SSH interno.

Alguém tem idéia do que poderia ser o problema aqui?


Você adicionou manualmente uma chave SSH ao seu repositório git?
Aurelius

@urelius sim, estamos usando o GitLab, e eu o publiquei no meu perfil.
StuXnet

O IntelliJ está descontente com seu par de chaves pública / privada. Como você o gerou?
yole

@ yole Eu tentei os dois puttygene Git GUI, como foi o meu primeiro pensamento também. Tem certeza de que é sobre o meu par de chaves? A exceção parece ser sobre os hosts conhecidos: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
stuXnet

Não tenho certeza sobre o voto negativo - parece haver um problema com entradas com hash / unhashed em known_hosts. Vou aprofundar um pouco mais e responder à pergunta.
StuXnet

Respostas:


721

Settings --> Version Control --> Gite, no menu suspenso SSH executável, escolha Native

Controle de versão: Git: SSH executável: Para o projeto atual

Se isso não ajudar, verifique se o nativo sshe os gitclientes têm uma versão suficientemente recente.


5
Sei que é possível alterar a implementação do SSH, até escrevi explicitamente que estou usando o executável interno (o que não escrevi: o nativo não funciona para mim no Windows) Mas sua postagem não responde minha pergunta: qual poderia ser o problema com o executável embutido?
StuXnet

22
Não pode ajudar para mim #
955 hellboy

8
@ Jimbo Apenas minha suposição, mas é assim que eu entendo: O Built-in usa outro "Usuário" em seu repositório, anteriormente que "Usuário" tinha permissão para enviar arquivos e alterações. Esse "Usuário" foi redefinido em uma atualização e não pode mais. O Native usa a conta em que você está conectado à sua máquina.
AlexG #

10
Estranho. Eu tinha 3 computadores separados, todos começaram a fazer isso comigo depois de trabalhar por mais de 2 anos. isso consertou. WTF
Nicholas DiPiazza,

11
@NicholasDiPiazza Isso está relacionado ao Github remover os padrões criptográficos github.com/blog/2507-weak-cryptographic-standards-removed . Além disso, outros softwares que usam bibliotecas "internas" (por exemplo, TeamCity) são afetados por essa alteração. Seu cliente git nativo provavelmente está atualizado, é por isso que esta etapa o corrige.
philsch 27/02

68

Vá para Preferências> Controle de Versão> Git. Verifique se o executável SSH está definido como "Nativo". (Se já estiver, mude para "Incorporado", aplique-o e depois volte para "Nativo".

Se isso não resolver seu problema, sugiro que você baixe um cliente Git, como o cliente GitHub (aplicativo gratuito para desktop), e tente sincronizar seu projeto por meio do aplicativo. Volte para o IntelliJ e verifique se funciona.


1
Também funciona bem no Android Studio. Esta questão estava me deixando louco, obrigado @Farbod jan!
Javad Sadeqzadeh

1
Alternar SSH executablefuncionou para mim. Eu já estava lá Nativetambém.
nic

1
Para todos que estão pensando em voltar para o built-in: considere atualizar o SSH nativo primeiro. O executável nativo é usado em todo o sistema operacional e se comportará de forma consistente dentro e fora do seu IDE.
milosmns

52

Comecei a receber Could not read from remote repositoryerros recentemente ao trabalhar com meurepositório. Minhas especificações:

  • IntelliJ IDEA 2017.3.4 (Edição Ultimate)
  • Configurações -> Controle de Versão -> Git -> Executável SSH -> Interno
  • Fedora Linux

insira a descrição da imagem aqui

É claro que esses problemas ocorreram apenas ao tentar empurrar / puxar / buscar etc. do IDE - executar os mesmos comandos na linha de comando funcionou como um encanto.

Solução que funcionou para mim

Eu não queria mudar do Built-Inexecutável SSH para Native, principalmente porque meu cliente SSH nativo solicita a senha sempre que tento sincronizar com o repositório remoto.

Resolvi esse problema alternando do URL remoto SSH para o URL HTTPS. De acordo com esta página de ajuda do GitHub - é recomendável usar o URL HTTPS em vez do SSH .

Alterando o URL remoto de SSHparaHTTPS

No IntelliJ IDEA, vá para VCS -> Git -> Remotes ... , selecione a linha que contém "origem" e clique no botão Editar. Se você hospedar seu repositório no GitHub, substitua seu URL SSH de:

git@github.com:USERNAME/REPOSITORY.git

para:

https://github.com/USERNAME/REPOSITORY.git

Você também pode obter seu URL HTTPS na página inicial do repositório GitHub - clique no botão "Clonar ou baixar" e clique no link "Usar HTTPS" para exibir o URL HTTPS do seu repositório:

insira a descrição da imagem aqui

ATUALIZAÇÃO 13/03/2018

O JetBrains acaba de lançar o IntelliJ IDEA 2017.3.5, que inclui correção para acesso SSH ao GitHub - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -to-github /


2
Esta é a solução que funcionou para mim em um MacBook Pro, PHPStorm 2017.3.4) (30 de janeiro de 2018 antes da data de compilação necessária anotada em 1/31).
Edward Barnard

1
Essa solução funcionou, geralmente, o problema é que muitos usuários tentam usar a chave SSH para definir remotamente, mas isso gera um erro. Mudar de SSH para HTTPS é a solução na maioria das vezes.
Kourosh

1
usando o link com base em https slove o meu problema em PhpStorme versão 2018/01/05
dmitri

1
Esta solução funcionou para mim no MacBook Pro, Intellij IDEA.
Shaojun lyu

1
Também funciona com o GitLab para alterar o URL para o link https.
Master James

23

O cliente SSH interno do IntelliJ parece conter hashknown_hosts , mas o que eu tinha os nomes de host em texto não criptografado.

Quando excluí o arquivo e deixei o IntelliJ criar um novo, com apenas meu servidor GitLab (com hash) e nada mais, funcionou.

Também não é possível misturá-lo - mantenha algumas entradas unificadas com entradas hash para o IntelliJ. Portanto, você deve configurar seus outros clientes SSH para usar hosts com hash .


14
  1. Vá para Configurações-> Git-> Selecione Nativo no menu suspenso SSH executável. (Se não estiver selecionado)
  2. Copie o link HTTPS do seu repositório Github.
  3. Vá para VCS-> Git-> Remotes.
  4. Edite a origem e cole o link HTTPS no campo URL.
  5. Pressione Ctrl+Shift+ke empurre o projeto para o repositório. Funciona.

1
Onde está a conexão entre o SSH e a substituição dos URLs pelo protocolo HTTPS?
Sweisgerber.dev

Eu só quero saber, onde diabos alguém mencionou o github aqui?
Emad Ha

Isso funcionou para mim. Ele me pediu minhas credenciais de bitbucket, então é bom ir.
Marlon

13

em pyCharm,

file|
    v-->settings|
                v-->Version Control|
                                   v-->Git

Aqui mude SSH executablede Built-inparaNative

depois pressione applyeclose


11

Resolvi esse problema adicionando novamente o repositório remoto: VCS -> Git -> Remotes.


4
Não é uma boa opção no meu caso ... Agora não consigo adicioná-lo novamente, recebendo a mensagem " Falha no teste de [...] URL remoto remoto inválido: não foi possível ler no repositório remoto. " Obs: Eu posso conectar para o github através do git cli.
Ricardo

1
Mesmo problema que @Ricardo
Uri Goren

@uri nenhuma das soluções funcionou para mim. Instalei o EAP 2018, que corrigiu um problema relatado em dezembro de 2017. Finalmente funcionou! veja também o post Update-ssh-key-to-use-new-passphrase
Ricardo

Eu adicionei comentários à pergunta, mas eles ficaram ocultos. Então eu adicionei uma resposta também.
Ricardo

Por motivos desconhecidos, funciona para o PHPStorm 2017.4. Obrigado!
Maksim B.

5

o que @yabin ya diz é uma solução interessante, lembre-se de que: se você ainda tiver o mesmo problema, vá para Settings-Version Control-GitHub e desmarque a opção Clone git repositories using ssh.


5

Você precisa gerar uma nova chave SSH e adicioná-la ao seu ssh-agent. Para que você deve seguir este link .

Depois de criar a chave pública e adicioná-la à sua conta do github, você deve usar a opção Embutida (não nativa) em Configuração-> Controle de versão -> Git -> SSH executável na sua idéia Intellij.


1
Para mim, mudar para Nativeresolver o problema, no Mac
Jeroen Vermeulen - MageHost 26/02

Eu lutei com esse problema por cerca de uma semana (felizmente, eu poderia usar a linha de comando git nesse meio tempo) .. Como finalmente resolvi, ele estava regenerando minhas chaves SSH, mas também tive que reiniciar o computador e usar a linha de comando ssh-add.
Crenguta S

3

Atualizamos recentemente do IntelliJ 12 para o IntelliJ 14 Ultimate e também encontramos esse problema. Nossa solução foi desativar o proxy nas configurações. Também paramos de lembrar as senhas uma vez, mas podemos não ter certeza se isso ajuda. As configurações de proxy estão em Configurações do arquivo - Aparência e comportamento - Configurações do sistema - Proxy HTTP.


Isso é interessante! Então você teve o mesmo stacktrace?
StuXnet

Tivemos o mesmo stacktrace (eu mudei a resposta um pouco)
Koen de Roo

3

isso me ajudou a corrigir o problema atual

Se você estiver usando o macOS Sierra 10.12.2 ou posterior, precisará modificar o arquivo ~ / .ssh / config para carregar automaticamente as chaves no ssh-agent e armazenar as senhas no chaveiro.

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

fonte



2

Eu resolvi isso adicionando minha chave privada SSH ao ssh-agent no comando:

$ ssh-add -K ~/.ssh/id_rsa

E Settings --> Version Control --> Git, definindo e, no menu suspenso executável SSH, escolhaNative


1

Não é uma solução / solução alternativa, mas talvez uma resposta para a pergunta 'qual poderia ser o problema':

O Gitlab e os 'jetbrains built in ssh library' não funcionam bem juntos. A biblioteca deseja usar o algoritmo de troca de chaves baseado em SHA1, em que o gitlab (padrão) permite apenas o algoritmo de troca de chaves baseado em SHA2.

Isso foi relatado para pelo menos o TeamCity ( https://youtrack.jetbrains.com/issue/TW-47704 ).

O fato de que também pode ser a causa do seu problema de puxar / empurrar no IntelliJ, e também o meu problema de empurrar no PhpStorm é baseado no jetbrains ASSUMPTION, usam o mesmo 'construído na biblioteca' para todos os seus softwares.


0

Eu tive esse problema com um garfo de algum curso on-line. Clonei meu garfo e encontrei um erro de permissão. Não conseguia entender por que insistia em ser meu usuário da outra empresa. Mas como o comentarista anterior mencionou Clone git repositories using ssh, verifiquei a configuração e esqueci de adicionar uma chave ssh à minha nova conta. Então eu fiz e, em seguida, ainda não consegui enviar porque recebi este erro. A maneira que resolvi foi usar o cliente Github Desktop.

Aprendizado:

  1. Quando você abre uma nova conta do GitHub, adicione uma chave ssh nela
  2. Use chaves ssh diferentes para contas diferentes
  3. Em geral, encontro algum problema do GitHub no IntelliJ pelo menos uma ou duas vezes para cada projeto. Verifique se você possui uma cópia da área de trabalho do GitHub e carregue seus projetos nela. Ele pode e irá ajudá-lo com muitos problemas que você pode encontrar com o Intellij - e não apenas este. Na verdade, é um cliente GUI muito bom e gratuito!
  4. Provavelmente faz sentido fazer o que o @yabin sugere e usar o cliente nativo em um Mac

0

A única coisa que ajudou no meu caso (mudar o SSH-executabe não funcionou) foi desativar o plug-in git e git-flow, reiniciar o intellij e reativar esses plugins novamente ...


0

Não se esqueça de entrar em contato com o administrador do sistema.

Porque no meu caso, eu tinha tudo configurado corretamente (SSH também adicionado), mas recebi o mesmo erro

acesso ao repositório negado. fatal: Não foi possível ler do repositório remoto.

o motivo foi que eu só tinha acesso de leitura a esse repositório. Portanto, sem perder seu precioso tempo, verifique isso como a primeira coisa. Obrigado.


Você entrou java.io.IOException: Padding in RSA public key!no log quando não há permissões suficientes? Isso é interessante e pode indicar um erro no processamento do SSH do IntelliJ.
StuXnet

0

Se tudo mais falhar, basta ir ao seu terminal e digitar na sua pasta:

git push origin master

Era assim que os deuses originalmente queriam que fosse.


0

Eu tive esse problema com o WebStorm recentemente ( fevereiro / 2018 ) e nenhuma das soluções (então) anteriores funcionou para mim. Depois de passar algumas horas na solução de problemas e pesquisas, instalei a versão 2018 do EAP e agora funciona!


Um novo problema relatado em dezembro / 2017 no subsistema IntelliJ Idea> VCS / Git que foi corrigido na compilação 181.2445 (ou qualquer compilação mais recente após 31 / jan / 2018).

Veja também a publicação Update-ssh-key-to-use-new-passphrase


Obrigado pelo link. Para outros TL; DR, o principal comentário para mim foi Nate: "Uma solução que funcionou para mim: em Configurações> Aparência e comportamento> Configurações do sistema> Senhas ..." ... Alterne para Não salvar, esqueça as senhas após reiniciar , Puxe e depois volte a ligá-lo.
Matthew Weber

0

O problema foi resolvido no meu pc.
configurações -> Controle de versão -> Git e, no menu suspenso SSH executável, selecione a opção interna.

e instale a versão mais antiga do git, algo como 2.14.2 .
Funciona bem!


0

Marque as configurações de proxy do Idea se estiver tentando se conectar a serviços em nuvem como github ou bitbucket. Isso pode ser feito procurando plug-ins para instalar ou verificando atualizações de software no helpmenu. Se as configurações de Internet / proxy não estiverem corretas, adicione entradas válidas ou defina-as comoauto


0

Isso foi corrigido para mim (estou usando SSH, não HTTPS e o git nativo, não o interno) no MacOS High Sierra (10.13.5) / IntelliJ IDEA 2018.4:

Arquivo -> invalidar caches e reiniciar


0

Resolvi o problema simplesmente garantindo que eu tivesse o URL git SSH correto sem espaços à direita:

git@github.com:USERNAME/REPOSITORY.git


0

Eu tentei todas as soluções acima (nativas, alterando o URL do repositório VCS, atualizando o Git, atualizando o IDEA, invalidando os caches), mas nada me ajudou. Finalmente encontrei a solução que funciona para mim.

SOLUÇÃO: fechei o Idea e substituí o conteúdo do arquivo ~\.IntelliJIdea20xx.x\config\options\git.xmlpor este:

<application>
  <component name="Git.Application.Settings">
    <option name="SSH_EXECUTABLE" value="IDEA_SSH" />
  </component>
</application>

Então eu comecei o IDEA, tente fazer o checkout do repositório SSH GIT e ele funciona e os projetos existentes também. Fato interessante é que, quando mudo para NATIVE em Idea Settings, o repositório não funciona.


0

Eu tive o mesmo problema. Estava usando o bitbucket e teve problemas ao extrair / atualizar o repositório no Intellij. Tentei mudar para nativo e voltei a incorporar, mas não estava funcionando. Então percebi que eu havia gerado a chave ssh com uma senha.

Regenerei a chave sem a senha e a adicionei ao bitbucket. Funcionou !


0

Eu tentei a Nativeopção, mas não funciona para mim, finalmente regenere a chave ssh da maneira antiga e adicione a -mopção no ssh-keygencomando. também IDEA funciona com a build-inopção tão bem.

ssh-keygen -m PEM -t rsa -b 4096 -C "email@..."

0

Ao adicionar o URL remoto, altere-o deste

https://username@bitbucket.org/usernameowner/project-name.git

para isso

https://bitbucket.org/usernameowner/project-name.git



-1

Verifique se você alterou o link para o repositório git para a HTTPSopção depois de selecionar "Nativo" nas configurações do IntelliJ, se SSHnão funcionar.

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.