Git с IntelliJ IDEA: не удалось прочитать из удаленного репозитория

С нескольких недель я не могу вытащить или нажать или в удаленный репозиторий. Я подумал, что это произойдет при обновлении до IntelliJ IDEA 14, но я также могу воспроизвести проблему с IDEA 13.1.5.

В подсказке говорится: Ошибка при извлечении fatal: Не удалось прочитать из удаленного репозитория.

и исключение на вкладке "Контроль версий" читает

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.

Используя встроенный терминал IntelliJ, выполняющий git -c core.quotepath=false fetch origin --progress --prune, он работает так, как должен.

В соответствии с stacktrace, кажется, проблема с моим KnownHosts, поэтому я удалил наш сервер git из ~/.ssh/known_hosts, надеясь, что IntelliJ снова вставляет его. Но проблема по-прежнему возникает при обновлении через пользовательский интерфейс, и нет новой записи, написанной в known_hosts; думая о некотором кэшировании файла, я перезапустил IntelliJ без успеха.

Когда вы делаете еще один git fetch с терминала, теперь меня спрашивают, хочу ли я постоянно добавлять сервер. После этого он снова был записан в known_hosts, но IntelliJ все еще не позволяет мне обновлять мой проект.

Я ничего не нашел об этом поведении в Интернете, поэтому, я думаю, это не известная ошибка с новой версией IntelliJ. Тем не менее, я обновился до 14.0.2, но проблема все еще существует.

IntelliJ настроен на использование встроенного исполняемого файла SSH.

Кто-нибудь знает, что может быть проблемой здесь?

Ответ 1

IntelliJ встроенный SSH-клиент, похоже, hash его known_hosts, но тот, который у меня был с именами хостов в ясном тексте.

Когда я удаляю файл и позволяю IntelliJ создавать новый, только с моим (хэшированным) сервером GitLab и ничем другим, он работал.

Невозможно также его смешивать - сохраняйте некоторые незашифрованные записи вместе с хэшированными записями для IntelliJ. Таким образом, вы должны настроить другие клиенты SSH для использования хэшированных хостов.

Ответ 2

Settings --> Version Control --> Git, а затем в выпадающем списке SSH выберите Native

Version Control: Git: SSH executable: For current project

Если это не поможет, убедитесь, что ваши нативные клиенты ssh и git имеют достаточно свежую версию.

Ответ 3

Перейдите в раздел "Настройки" > "Управление версиями" > Git. Убедитесь, что для исполняемого файла SSH установлено значение "Родной". (Если это уже так, переключите его на "Встроенный", примените его, а затем снова верните в "Нативный".).

Если это не решит вашу проблему, я бы предложил загрузить клиент Git, такой как клиент GitHub (бесплатное настольное приложение), и попытаться синхронизировать ваш проект с помощью приложения. Затем вернитесь к IntelliJ и проверьте, не работает ли он.

Ответ 4

Я начал получать Could not read from remote repository ошибку Could not read from remote repository последнее время при работе с моим репозиторием. Мои спецификации:

  • IntelliJ IDEA 2017.3.4 (Ultimate Edition)
  • Настройки → Контроль версий → Git → исполняемый файл SSH → Встроенный
  • Fedora Linux

enter image description here

Конечно, эти проблемы возникали только при попытке нажать/вытащить/извлечь и т.д. Из IDE - выполнение одних и тех же команд из командной строки работало как шарм.

Решение, которое сработало для меня

Я не хотел переключаться с Built-In SSH файла на Native, в основном потому, что мой собственный SSH-клиент запрашивает у меня пароль в любое время, когда я пытаюсь синхронизировать с удаленным репозиторием.

Я решил эту проблему, переключившись с удаленного URL-адреса SSH на HTTPS-URL. Согласно этой странице справки GitHub - рекомендуется использовать HTTPS-URL вместо SSH.

Изменение удаленного URL-адреса с SSH на HTTPS

В IntelliJ IDEA перейдите в VCS → Git → Remotes..., выберите строку, содержащую "origin", и нажмите кнопку "Изменить". Если вы размещаете свой репозиторий на GitHub, замените URL-адрес SSH:

[email protected]:USERNAME/REPOSITORY.git

чтобы:

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

Вы также можете получить URL-адрес HTTPS со своей домашней страницы репозитория GitHub - нажмите кнопку "Клонировать или загрузить" и нажмите ссылку "Использовать HTTPS", чтобы отобразить URL-адрес вашего HTTPS-репозитория:

enter image description here

ОБНОВЛЕНИЕ 2018-03-13

JetBrains только что выпустили IntelliJ IDEA 2017.3.5, который включает исправление для доступа SSH к GitHub - https://blog.jetbrains.com/idea/2018/03/intellij-idea-2017-3-5-fix-for-ssh-access -в-GitHub/

Ответ 5

в pyCharm,

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

Здесь можно изменить SSH executable из Built-in в Native

затем нажмите " apply и close

Ответ 6

  1. Перейдите в Settings-> Git-> Select Native в раскрывающемся списке исполняемых файлов SSH. (Если он не выбран)
  2. Скопируйте ссылку HTTPS из своего репозитория Github.
  3. Перейдите в VCS-> Git-> Remotes..
  4. Отредактируйте начало и вставьте ссылку HTTPS в поле URL.
  5. Нажмите Ctrl+Shift+k и нажмите проект в репозиторий. Оно работает.

Ответ 7

Я решил эту проблему, повторно добавив удаленный репозиторий: VCS → Git → Remotes.

Ответ 8

то, что @yabin ya говорит, является отличным решением, просто напомните, что: если у вас все еще проблема, перейдите в Settings-Version Control-GitHub и снимите флажок Clone git repositories using ssh.

Ответ 9

Вам нужно создать новый ключ SSH и добавить его в свой ssh-agent. Для этого вы должны следовать этой ссылке.

После того, как вы создадите открытый ключ и добавите его в свою учетную запись github, вы должны использовать встроенную (не родную) опцию в Setting-> Version Control → Git → SSH, исполняемую в вашей Intellij Idea.

Ответ 10

Недавно мы обновили IntelliJ 12 до IntelliJ 14 Ultimate, и мы столкнулись с этой проблемой. Нашим решением было отключить прокси-сервер в настройках. Мы также перестали запоминать пароли один раз, но, возможно, не уверены, что это поможет. Настройки прокси-сервера находятся в разделе "Параметры файла -Поиск и поведение-Системные настройки-HTTP-прокси".

Ответ 11

Я решил эту проблему, удалив пароль для ключа ssh в PuTTY.

Ответ 12

это помогло мне исправить текущую проблему

Если вы используете macOS Sierra 10.12.2 или новее, вам нужно будет изменить файл ~/.ssh/config, чтобы автоматически загружать ключи в ssh-agent и хранить фразы в вашей цепочке ключей.

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

источник

Ответ 13

Не решение/обходной путь, но, возможно, ответ на вопрос "что может быть проблемой":

Gitlab и "реактивные мозги, встроенные в библиотеку ssh" не работают хорошо. Библиотека хочет использовать алгоритм обмена ключами на основе SHA1, где gitlab (по умолчанию) позволяет использовать алгоритм обмена ключами на основе SHA2.

Об этом сообщается как минимум для TeamCity (https://youtrack.jetbrains.com/issue/TW-47704).

Тот факт, что это также может быть причиной проблемы с pull/push в IntelliJ, а также моя проблема с push-проблемой в PhpStorm, основаны на том, что jetbrains ASSUMPTION используют одну и ту же "встроенную библиотеку" для всего своего программного обеспечения.

Ответ 14

Я решил эту проблему, добавив свой закрытый ключ SSH к ssh-agent в команде:

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

И установив Settings --> Version Control --> Git, а затем в выпадающем списке SSH выберите Native

Ответ 15

У меня была эта проблема с вилкой из какого-то онлайн-курса. Я клонировал свою вилку и столкнулся с ошибкой разрешений. Я не мог понять, почему он настаивал, что я был моим пользователем из моей другой компании. Но, как заметил предыдущий комментатор, я установил параметр Clone git repositories using ssh, и я забыл добавить ключ ssh в свою новую учетную запись. Так что я сделал, а затем все еще не мог нажать, потому что я получил ЭТУ ошибку. То, как я решил это, было нажатие с использованием клиента Github Desktop.

Takeaways:

  • Когда вы открываете новую учетную запись GitHub, обязательно добавьте к ней ключ ssh
  • Используйте разные ключи ssh для разных учетных записей.
  • В общем, я сталкиваюсь с проблемой GitHub на IntelliJ по крайней мере один или два раза для каждого проекта. Убедитесь, что у вас есть копия рабочего стола GitHub и загружайте в нее свои проекты. Он может и поможет вам с множеством проблем, с которыми вы можете столкнуться с Intellij - не только этим. Это действительно отличный клиент GUI и бесплатный!
  • Возможно, имеет смысл делать то, что предлагает @yabin, и использовать собственный клиент на Mac

Ответ 16

Единственное, что помогло в моем случае (сменить SSH-executabe, не работало) было деактивировать плагин git и git -flow, перезапустить intellij и снова активировать эти плагины...

Ответ 17

Не забудьте обратиться к системному администратору.

Потому что в моем случае я правильно настроил все настройки (добавлен SSH), но я получил ту же ошибку

недоступен доступ к хранилищу. фатальный: не удалось прочитать с удаленного хранилище.

Причина была в том, что я только имел доступ на чтение к этому репозиторию. Поэтому, не тратя драгоценное время, пожалуйста, проверьте это как первое. Спасибо.

Ответ 18

Если все остальное не работает, просто перейдите к своему терминалу и введите из своей папки:

git push origin master

Это то, чего первоначально хотели Боги.

Ответ 19

Недавно у меня была проблема с WebStorm (февраль/2018 год), и ни один из предыдущих (тогда) предыдущих решений не работал для меня. Потратив несколько часов на поиск и устранение неисправностей, я установил версию EAP 2018, и теперь она работает!


В декабре /2017 году сообщалось о новой проблеме подсистемы IntelliJ Idea> VCS/Git, которая была исправлена в сборке 181.2445 (или любой последней сборки после 31 января /2018 года).

См. Также сообщение Update-ssh-key-to-use-new-passphrase

Ответ 20

Проблема решена в моем компьютере.
settings--> Версия Control--> Git, а затем в раскрывающемся списке исполняемого файла SSH выберите встроенную опцию.

и установите git более старую версию примерно как 2.14.2.
Его работы хорошие!

Ответ 21

Проверьте настройки прокси-сервера Idea, если вы пытаетесь подключиться к облачным сервисам, таким как github или bitbucket. Это можно сделать, если вы планируете устанавливать плагины или проверяете обновления программного обеспечения в меню help. Если интернет/прокси настройки не правильно добавить действительные записи или установить его на auto

Ответ 22

Это фиксировало это для меня (я использую SSH, а не HTTPS, а родной git, а не встроенный) на MacOS High Sierra (10.13.5)/IntelliJ IDEA 2018.4:

File -> Invalidate Caches and Restart

Ответ 23

Я решил проблему просто, убедившись, что у меня есть правильный git SSH url без каких-либо конечных пробелов:

[email protected]:USERNAME/REPOSITORY.git

Ответ 25

Ничто не помогло мне. Затем я увидел, что имя проекта на компьютере отличается от имени в репозитории git.

Поэтому я решил проблему.

Ответ 26

Я пробовал все решения выше (Native, меняя URL-адрес репозитория VCS, обновляя Git, обновляя IDEA, недействительные кеши), но мне ничего не помогло. Наконец, я нашел решение, которое работает для меня.

РЕШЕНИЕ: Я закрыл Idea и заменил содержимое файла ~\.IntelliJIdea20xx.x\config\options\git.xml следующим образом:

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

Затем я начал IDEA, попробовал проверить хранилище SSH GIT, и он работает, и существующие проекты также работают. Интересным фактом является то, что когда я переключаюсь на NATIVE в настройках Idea, репозиторий не работает.

Ответ 27

У меня такая же проблема. Использовал битбакет и не мог потянуть/обновить репозиторий на Intellij. Пробовал переходить на родной и обратно на встроенный, но он не работал. Затем понял, что я создал ключ ssh с парольной фразой.

Я восстановил ключ без кодовой фразы, а затем добавил его в битбакет. Это сработало !

Ответ 28

Я попробовал Native но у меня ничего не -m, наконец регенерирую ключ ssh старым способом и добавляю -m в команду ssh-keygen. Также IDEA работает со build-in опцией как хорошо.

ssh-keygen -m PEM -t rsa -b 4096 -C "[email protected]"

Ответ 29

При добавлении удаленного URL измените его с этого

https://[email protected]/usernameowner/project-name.git

к этому

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

Ответ 30

Я изменил путь git, и это сработало.

enter image description here