git з IntelliJ IDEA: Неможливо прочитати з віддаленого сховища


260

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

Підказка говорить: "Витяг не вдався фатально: Не вдалося прочитати з віддаленого сховища."

а виняток на вкладці "Контроль версій" читає

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його, він працює як слід.

Згідно з стек-траксом, здається, що з моїм є проблема KnownHosts, тому я видалив наш git-сервер із ~/.ssh/known_hostsнадії, що IntelliJ знову вставить його. Але проблема як і раніше з'являється при оновленні через інтерфейс користувача, і немає нового запису, записаного в known_hosts; думаючи про якесь кешування файлу, я без перешкод перезапустив IntelliJ.

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

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

IntelliJ налаштований на використання вбудованого виконуваного SSH.

Хтось має поняття, у чому тут може бути проблема?


Ви вручну додали ключ SSH до вашого сховища git?
Аврелій

@aurelius так, ми використовуємо GitLab, і я розмістив його там у своєму профілі.
stuXnet

IntelliJ незадоволений вашою парою відкритих / приватних ключів. Як ти це створив?
йоле

@yole Я спробував і те, puttygenі інше Git GUI, як це теж було моєю першою думкою. Ви впевнені, що це стосується моєї пари ключів? Виняток, мабуть, стосується відомих хостів: code.google.com/p/connectbot/source/browse/src/com/trilead/ssh2/…
stuXnet

Не впевнені в голосному переслідуванні - схоже, є проблема з хешованими / неприхованими записами у відомих_хостях. Я збираюся ще трохи заглибитися в нього і відповісти на питання.
stuXnet

Відповіді:


721

Settings --> Version Control --> Git, а потім у спадному меню, що виконується, SSH, виберіть Native

Контроль версій: Git: виконуваний SSH: для поточного проекту

Якщо це не допомагає, переконайтеся, що ваші рідні sshта gitклієнти є досить новітньою версією.


5
Я знаю, що можливо змінити реалізацію SSH, я навіть явно написав, що використовую вбудований виконуваний файл (те, що я не писав: рідний не працює для мене в Windows), але ви не відповідаєте моє запитання, яка проблема може бути із вбудованим виконуваним файлом.
stuXnet

22
Не можу допомогти мені
hellboy

8
@Jimbo Просто моє припущення, але ось як я це розумію: вбудований використовує іншого "Користувача" у вашому сховищі, раніше "Користувачеві" було дозволено надсилати файли та зміни. Цей "Користувач" було скинуто в оновленнях і більше не може. Native використовує обліковий запис, на якому ви ввійшли на свій комп'ютер.
AlexG

10
Дивно. У мене було 3 окремих комп’ютера, всі почали робити це зі мною після роботи протягом 2+ років. це зафіксувало це. WTF
Nicholas DiPiazza

11
@NicholasDiPiazza Це пов’язано з видаленням криптографічних стандартів Github github.com/blog/2507-weak-cryptographic-standards-removed . Також ці зміни впливають на інше програмне забезпечення, яке використовує "вбудовані" бібліотеки (наприклад, TeamCity). Ваш рідний клієнт git, ймовірно, оновлений, тому цей крок це виправляє.
філш

68

Перейдіть до Налаштування> Контроль версій> Git. Переконайтесь, що для виконуваних файлів SSH встановлено значення "Native". (Якщо це вже так, перемкніть його на "Вбудований", застосуйте його, а потім знову переключіться на "Рідний".)

Якщо це не вирішує вашу проблему, я б запропонував завантажити клієнт Git, такий як клієнт GitHub (безкоштовний додаток для настільних ПК) і спробувати синхронізувати ваш проект через додаток. Потім поверніться до IntelliJ і перевірте, чи працює він.


1
Відмінно працює і в Android Studio. Це питання змусило мене з глузду, дякую @Farbod jan!
Джавад Садекзаде

1
Тоггінг SSH executableпрацював на мене. Я вже був Nativeтакож.
нік

1
Для всіх, хто має намір повернутися до вбудованого: спочатку подумайте про оновлення рідної SSH. Власний виконуваний файл використовується у всій ОС і буде вести себе послідовно всередині та поза вашою IDE.
milosmns

52

Я Could not read from remote repositoryнещодавно почав отримувати помилки під час роботи зі своїмсховище. Мої характеристики:

  • IntelliJ IDEA 2017.3.4 (остаточне видання)
  • Налаштування -> Контроль версій -> Git -> Виконавець SSH -> Вбудований
  • Fedora Linux

введіть тут опис зображення

Звичайно, ці проблеми виникали лише при спробі натиснути / потягнути / витягнути тощо з IDE - виконання тих же команд з командного рядка працювало як шарм.

Рішення, яке працювало на мене

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

Я вирішив цю проблему, перейшовши з віддаленої URL-адреси SSH на URL-адресу HTTPS. Відповідно до цієї довідкової сторінки GitHub - рекомендується використовувати URL HTTPS замість SSH .

Зміна віддаленої URL-адреси SSHнаHTTPS

У IntelliJ IDEA перейдіть до VCS -> Git -> Remotes ... , виберіть рядок, що містить "origin" та натисніть кнопку редагування. Якщо ви розміщуєте свій сховище в GitHub, замініть свою URL-адресу SSH на:

git@github.com:USERNAME/REPOSITORY.git

до:

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

Ви також можете отримати URL-адресу HTTPS з домашньої сторінки вашого сховища GitHub - натисніть кнопку "Клонувати або завантажити" та натисніть посилання "Використовувати HTTPS", щоб відобразити URL-адресу HTTPS вашого сховища:

введіть тут опис зображення

ОНОВЛЕННЯ 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 /


2
Це рішення, яке працювало для мене на MacBook Pro, PHPStorm 2017.3.4) (30 січня 2018 року до зазначеної 1/31 необхідної дати створення).
Едвард Барнард

1
Це рішення спрацювало, як правило, проблема полягає в тому, що багато користувачів намагаються використовувати ключ SSH для визначення віддаленого, але це дає вам помилку. Перехід з SSH на HTTPS є рішенням більшості випадків.
Курош

1
використовуючи посилання на основі https slove мого випуску на PhpStorme версії 2018.1.5
dmitri

1
Це рішення працювало для мене на MacBook Pro, Intellij IDEA.
shaojun lyu

1
Також працює з GitLab для зміни URL-адреси на https-посилання.
Майстер Джеймс

23

Вбудований клієнтський SSH-клієнт IntelliJ, здається, має хеш-версіюknown_hosts , але той, у кого я мав, його імена хостів був чітким текстом.

Коли я видалив файл і дозволив IntelliJ створити новий, лише мій (хешований) сервер GitLab і нічого іншого, він працював.

Змішувати його також неможливо - зберігайте кілька незбитих записів разом із хешованими записами для IntelliJ. Отже, вам доведеться налаштувати ваші інші клієнти SSH для використання хешованих хостів .


14
  1. Перейдіть у меню Налаштування-> Git-> Виберіть Native in SSH. (Якщо його не вибрано)
  2. Скопіюйте HTTPS-посилання зі свого сховища Github.
  3. Перейдіть до VCS-> Git-> Пульти ..
  4. Відредагуйте походження та вставте посилання HTTPS у поле URL.
  5. Натисніть Ctrl+Shift+kі натисніть проект у сховище. Це працює.

1
Де з'єднання між SSH та заміною URL-адрес протоколом HTTPS?
sweisgerber.dev

я просто хочу знати, де на землі хтось тут згадував github?
Емад Ха

Це спрацювало для мене, воно попросило мене отримати свої облікові дані про бітбукет, тоді добре.
Марлон


11

Я вирішив цю проблему, додавши віддалений сховище: VCS -> Git -> Remotes.


4
Чи не варіант добре на моєму випадку ... Тепер я не можу повторно додати його знову, отримуючи повідомлення « Invalid дистанційне [...] Тест Remote URL не вдалося :. неможливо прочитати з віддаленого сховища » Obs: Я можу підключитися до github через git cli.
Рікардо

1
Той самий випуск, що і @Ricardo
Урі Горен

@uri жодне з рішень не працювало на мене. Я встановив EAP 2018, який виправив проблему, про яку повідомили грудень 2017 року. Нарешті це спрацювало! дивіться також пост Update-ssh-key-to-use-new-passphrase
Рікардо,

Я додав коментарі до питання, але вони приховались. Тож я і відповідь додав .
Рікардо

З незрозумілої мені причини він працює для PHPStorm 2017.4. Дякую!
Максим Б.

5

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


5

Вам потрібно створити новий ключ SSH та додати його до свого ssh-агента. Для цього вам слід перейти за цим посиланням .

Після створення відкритого ключа та додавання його до свого облікового запису github, слід скористатися вбудованою (не рідною) опцією в розділі Налаштування-> Контроль версій -> Git -> SSH-файл, виконаний у вашій Intellij Idea.


1
Для мене перехід на Nativeвирішення проблеми, на Mac
Jeroen Vermeulen - MageHost

Я боровся з цією проблемою близько тижня або близько того (на щастя, я міг використати командний рядок git тим часом). Як я нарешті вирішив, це відновило мої SSH-ключі, але також мені довелося перезавантажити комп'ютер і використовувати командний рядок ssh-add.
Кренгута

3

Нещодавно ми оновили від IntelliJ 12 до IntelliJ 14 Ultimate, і ми також зіткнулися з цією проблемою. Нашим рішенням було відключити проксі в налаштуваннях. Ми також один раз перестали згадувати паролі, але, можливо, не впевнені, чи допоможе це. Налаштування проксі-сервера знаходяться в розділі Параметри файлів-Аперування та поведінка-Налаштування системи-HTTP-проксі.


Це цікаво! Значить, у вас була однакова стежка?
stuXnet

У нас був такий самий стек-трек (я трохи змінив відповідь до цього часу)
Koen de Roo

3

це допомогло мені виправити поточну проблему

Якщо ви використовуєте macOS Sierra 10.12.2 або пізнішої версії, вам потрібно буде змінити файл ~ / .ssh / config, щоб автоматично завантажувати ключі в ssh-агент і зберігати паролі у вашому брелоку.

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

джерело



2

Я вирішив це, додавши свій приватний ключ SSH до ssh-агента в команді:

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

І налаштування Settings --> Version Control --> Git, а потім, у спадному меню, що випадає, SSH, виберітьNative


1

Не рішення / вирішення, але, можливо, відповідь на питання "що може бути проблемою":

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

Про це повідомлялось принаймні TeamCity ( https://youtrack.jetbrains.com/issue/TW-47704 ).

Справа в тому, що це також може бути причиною вашої проблеми з потягуванням та натисканням в IntelliJ, а також моя проблема "push" в PhpStorm заснована на ПІДТРИМАННІ ДЖЕБРАНІВ, які використовують ту саму "вбудовану бібліотеку" для всього свого програмного забезпечення.


0

У мене була ця проблема з вилкою з якогось онлайн-курсу. Я клонував вилку і зіткнувся з помилкою дозволу. Я не міг зрозуміти, чому це наполягав, що я мій користувач з іншої компанії. Але, як згадував попередній коментатор, у мене бувClone git repositories using ssh перевірена настройка, і я забув додати ключ ssh до свого нового облікового запису. Так я зробив, а потім все ще не міг натиснути, бо отримав ЦУ помилку. Я вирішив це - натиснути за допомогою клієнта Github Desktop.

Винос:

  1. Відкриваючи новий обліковий запис GitHub, обов’язково додайте до нього ключ ssh
  2. Використовуйте різні ключі ssh для різних облікових записів
  3. Взагалі, я стикаюся з деяким випуском GitHub на IntelliJ принаймні один чи два рази для кожного проекту. Переконайтеся, що у вас є копія робочого столу GitHub і завантажте в неї свої проекти. Це може і допоможе вам з багатьма проблемами, з якими ви можете зіткнутися з Intellij - не тільки з цією. Це насправді дуже приємний клієнтський інтерфейс та безкоштовно
  4. Мабуть, має сенс робити те, що пропонує @yabin, і використовувати рідний клієнт на Mac

0

Єдине, що допомогло в моєму випадку (комутатор SSH-Executabe не працював) - це деактивувати плагін git та git-flow, перезапустити intellij і знову активувати ці плагіни ...


0

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

Тому що в моєму випадку я все правильно налаштував (також додано SSH), але я отримав ту саму помилку

Доступ до сховища заборонено. fatal: Не вдалося прочитати з віддаленого сховища.

Причина в тому, що я лише читав доступ до цього сховища. Тому, не витрачаючи свій цінний час, будь ласка, перевірте це як перше. Дякую.


Ви потрапили java.io.IOException: Padding in RSA public key!в журнал, коли немає достатнього дозволу? Це цікаво і може вказувати на помилку в обробці SSH IntelliJ.
stuXnet

0

Якщо все інше не вдається, просто зайдіть до свого терміналу і введіть у свою папку:

git push origin master

Ось так спочатку хотіли боги.


0

У мене виникла ця проблема з WebStorm недавно ( лютий / 2018 ), і жодне з (тодішніх) попередніх рішень не працювало на мене. Провівши кілька годин на усунення несправностей та дослідження, я встановив версію EAP 2018 і тепер вона працює!


Про групу / грудень 2017 року про новий випуск повідомлялося про підсистему IntelliJ Idea> VCS / Git, яка була зафіксована у збірці 181.2445 (або будь-якій останній збірці після 31 січня 2018 року).

Дивіться також публікацію Оновити-ssh-ключ-до-використання-новий-пароль-фразу


Дякуємо за Посилання Для інших TL; DR ключовим коментарем для мене був Nate: "Рішення, яке працювало на мене: у розділі Налаштування> Зовнішній вигляд та поведінка> Налаштування системи> Паролі ..." ... Переключитися на "Не зберігати", забудьте паролі після перезавантаження. , Зробіть Pull, а потім перемкніть його назад.
Меттью Вебер

0

Проблема вирішена в моєму ПК.
Налаштування -> Контроль версій -> Git , а потім у спадному меню, що виконується SSH, виберіть вбудовану опцію.

і встановити старшу версію git на зразок 2.14.2 .
Це добре працює!


0

Перевірте налаштування проксі-серверу Idea, якщо ви намагаєтесь підключитися до хмарних служб, таких як github або bitbucket. Це можна зробити, шукаючи плагіни для встановлення або перевіряючи оновлення програмного забезпечення в helpменю. Якщо налаштування Інтернету / проксі невірні, додайте дійсні записи або встановіть їх наauto


0

Це виправлено для мене (я використовую SSH, а не HTTPS, а рідний git, а не вбудований) на MacOS High Sierra (10.13.5) / IntelliJ IDEA 2018.4:

Файл -> Недійсні кеші та перезапуск


0

Я вирішив проблему, просто переконавшись, що у мене правильний URL-адрес git SSH без пробілів:

git@github.com:USERNAME/REPOSITORY.git

0

Додаю цю відповідь, оскільки жодна з відповідей не працювала на мене.

У мене були проблеми з сертифікатами - тому наступна команда зробила свою справу.

git config --global http.sslПідтвердити хибність

взято з https://confluence.atlassian.com/fishkb/unable-to-clone-git-repository-due-to-self-signed-certificate-376838977.html


0

Я спробував усі рішення вище (Native, зміна URL-сховища VCS-сховища, оновлення Git, оновлення 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 в налаштуваннях ідеї, сховище не працює.


0

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

Я відновив ключ без парольної фрази, а потім додав його до бітбукета. Це спрацювало !


0

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

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

0

Додаючи віддалену URL-адресу, змініть її на цю

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

до цього

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



-1

Переконайтеся, що ви змінили посилання на сховище git на HTTPS параметр після того, як у налаштуваннях IntelliJ ви вибрали "Native", якщо SSHце не працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.