Ошибка «Auth Failed» с EGit и GitHub


98

Я установил плагин EGit в Eclipse Helios и пытаюсь использовать его со своей учетной записью GitHub, но когда я пытаюсь его настроить, я получаю сообщение об ошибке «Auth Failed».

Я искал это в Google, но не повезло ... похоже, проблема с моей кодовой фразой, но AFAIK EGit ищет правильное место ( /home/user/.ssh/id_rsa), и у меня нет проблем с подключением sshили gitконсольным клиентом.

В некоторых блогах говорится, что это проблема с URI и парсером Egit, но я все еще не нашел решения.


Ответы:


140

Мой ответ может быть устаревшим, но, надеюсь, он может быть кому-то полезен.

  1. В вашем Eclipse перейдите в Window> Preferences> General> Network Connections> SSH2 (или просто введите «SSH2» в поле фильтра окна настроек).

  2. На вкладке «Управление ключами» нажмите кнопку «Создать ключ RSA ...» . При желании вы можете добавить комментарий (обычно адрес электронной почты) и парольную фразу к вашему ключу. Парольная фраза будет использоваться при аутентификации на GitHub.

  3. Скопируйте сгенерированный открытый ключ (в поле под кнопкой «Создать ключ RSA ...») и добавьте его в свою учетную запись GitHub.
  4. Нажмите кнопку «Сохранить закрытый ключ ...» , чтобы сохранить свой закрытый ключ RSA в файл. По умолчанию ключи хранятся в домашнем каталоге SSH2 (см. Вкладку «Общие»).

Это оно! Теперь вы можете отправить свой код в репозиторий GitHub.


1
У моего закрытого ключа не было стандартного имени (id_rsa), поэтому он не распознавался как таковой. Я добавил его вручную в указанные вами окна настроек, и он работал нормально.
muriloq

18
Я заметил, что после настройки ключа SSH, как вы описываете, я не должен менять имя пользователя / пароль в поле аутентификации (я вводил свои учетные данные GitHub). По умолчанию в этом поле указано имя пользователя: git, а пароль пуст.
harschware

1
Это сработало для меня с репозиторием BitBucket git, хотя мне пришлось перезапустить Eclipse.
artlung

8
оставив имя пользователя как git и пароль пустым, наконец, сработало для меня.
Mike R

4
Вот процесс добавления сгенерированного ключа RSA в вашу учетную запись github 1) войдите в свою учетную запись github 2) перейдите к настройкам 3) слева вы найдете ключи SSH, щелкните их 4) затем нажмите добавить ключи SSH (теперь вставьте ключ SSH который вы сгенерировали)
rajeev

27

У меня была точно такая же проблема, но я нашел лекарство из отчета об ошибке Eclipse!

В переменной среды с именем GIT_SSH должен быть указан путь к исполняемому файлу ssh [1].

Например, в Ubuntu Linux (10.10 64bit):

> export GIT_SSH=/usr/bin/ssh
> eclipse

После этого нажатия в репозиторий GitHub работают как должны. Я тестировал это с Eclipse Galileo и Indigo.

Проблема действительно раздражает, и решение далеко не хорошее. На данный момент, чтобы сделать решение постоянным, по крайней мере, для пользователей Ubuntu, необходимо сделать постоянную переменную env. Это можно сделать, добавив команду экспорта в ~ / .profile или ~ / .bashrc [2]. Например:

> cd ~
> echo "export GIT_SSH=/usr/bin/ssh" >> .profile

Затем перезапустите Eclipse, чтобы изменения вступили в силу.

Источники:


Я всю неделю занимался этой проблемой - Eclipse под osx подключается к GitHub или Asssembla. Ваше исправление работает для меня. Спасибо.
ianmayo

В Windows у меня не работал openssh. Пришлось использовать плинк. Смотрите мой ответ.
Петр Доброгост

И это приближается к выпущенному исправлению. В конце отчета об ошибке кто-то показал, как вручную загрузить последний файл jsch jar и вручную установить его, чтобы он работал таким образом. Я просто собираюсь использовать это решение env var и подождать, пока этот jsch файл jar попадет в фактическую версию eclipse.
Crowmagnumb

Решил мою проблему. Спасибо.
Педрам

О, МОЙ БОГ. Подобные проблемы заставляют меня задуматься, почему Android вообще использовал Eclipse. Большое спасибо за совет. Это решило мою проблему, и EGit / Eclipse был совершенно бесполезен с «Auth Fail»
Калит

16

Я решил это, выбрав httpпротокол и указав свое имя пользователя и пароль GitHub.


да! Вопреки всему остальному, что я читал, но это сработало. (Eclipse Indigo)
Owen B,

http или https намного проще, чем ssh
Цзюньчэн Лю

Да, но есть случаи, когда вам нужно использовать ssh. Например, необходимость двухфакторной аутентификации в BitBucket при работе с репозиториями. Вы можете работать через ssh только тогда, когда вам нужна двухфакторная аутентификация.
Акшай Махаджан

10

Потратив часы на поиск решения этой проблемы, я наконец-то добился успеха, внося изменения, упомянутые на форуме Eclipse .

Шаги:

Предварительные требования: mysysgit установлен с конфигурацией по умолчанию.

1. Создайте файл C: /Users/Username/.ssh/config (замените «Username» своим именем пользователя Windows 7. (например, C: /Users/John/.ssh/config)) и поместите в него следующее:

Host github.com
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

2. Попробуйте настроить удаленный репозиторий в Eclipse.

Ура. Он должен работать отлично.


8

Вам необходимо установить msysgit, после установки нужно открыть Git Bash и ввести там следующие команды:

$ git config --global user.name "Gennadiy Zlobin" (your name)
$ git config --global user.email gennad.zlobin@gmail.com (your email)
$ ssh-keygen -C "gennad.zlobin@gmail.com" -t rsa (your email)

Теперь ваши сгенерированные ключи находятся в C:\Users\username\.ssh(в Windows 7).
Затем вы загружаете содержимое своего открытого ключа в свой проект на Github.
В Eclipse откройте Window->Preferences->General->Network->SSH2и установите его ~/.sshкак SSH Home.

После этого перейдите к Key Management tabи нагрузкам существующих ключа - установить здесь свой закрытый ключ ~/.ssh.

После этого вы можете отправить свой проект в Github (но я установил протокол ssh, а не git + ssh).


Большое спасибо, но на самом деле я запускаю его под Arch Linux
tehsis

5

Я решил ту же проблему, добавив свой ключ в ssh;

ssh-add ~/.ssh/id_rsa 

затем введите кодовую фразу и потребуется перезапуск.


4

Для пользователей * nix, использующих SSH:

Убедитесь, что имя пользователя вашей учетной записи на локальном компьютере не отличается от имени пользователя учетной записи на сервере. Судя по всему, eGit не может с этим справиться. Например, если ваше имя пользователя на вашем локальном компьютере - «john», а учетная запись, которую вы используете на сервере, называется «git», egit просто не удается подключиться (в любом случае для меня). Единственное, что я нашел, - это убедиться, что у вас одинаковые имена пользователей как на локальном компьютере, так и на сервере.


1
Есть идеи, так ли это? Сегодня вечером я бился головой об стену. Мой закрытый ключ защищен парольной фразой, которую Eclipse / eGit никогда не запрашивает. Когда я пытаюсь нажать на удаленный доступ, Eclipse просто выдает ошибку "org.eclipse.jgit.transport.CredentialItem $ StringType Passphrase для .ssh id_rsa"
Вилсепи


2

Мой fourpenneth: мои ключи SSH были настроены в Cygwin, в C: \ cygwin \ home \ <user> .ssh, поэтому я указал SSH на эту папку вместо стандартного (Win7) C: \ Users \ <user> \ ssh , согласно этим инструкциям: http://wiki.eclipse.org/EGit/User_Guide/Remote#Eclipse_SSH_Configuration

и использовал протокол ssh, и он отлично работает. Однако попытка использовать протокол git по-прежнему дает сообщение «Пользователь не поддерживается протоколом git».


2

Для вас, кто, как и я, уже настроил вам ssh-ключи, но все равно получаете ошибки:

Убедитесь, что вы настроили push-пульт . У меня это сработало, когда я получил и Невозможно получить ссылки на удаленный репозиторий -проблемы ("... Кодовая фраза для ..." и "Ошибка аутентификации" в диалоговом окне "Нажать ...").

При условии, что вы уже:

  1. Настройте ключи SSH с помощью Github (Окно> Настройки> Общие> Сетевые подключения> SSH2)

  2. Настройте свой локальный репозиторий (для этого вы можете следовать этому руководству )

  3. Создал репозиторий Github (то же руководство )

... вот как это сделать:

  • Перейдите в представление Git Repositories (Window> Show View> Other> Git Repositories)
  • Разверните свой репозиторий и щелкните правой кнопкой мыши «Пульты» -> «Создать удаленный».
  • «Remote Name»: origin, «Configure push»: отмечено -> нажмите «ОК»
  • Нажмите «Изменить ...» кнопку
  • Вставьте свой git URI и выберите протокол ssh -> нажмите «Готово».
  • Теперь нажмите «Сохранить и нажать», и СЕЙЧАС вы должны получить запрос пароля -> введите здесь кодовую фразу открытого ключа (при условии, что вы СДЕЛАЛИ (и должны) установить кодовую фразу для своего открытого ключа) -> нажмите «ОК»
  • Теперь вы должны получить окно подтверждения с надписью « Отправлено в ваш репозиторий - источник» -> нажмите «ОК».
  • Отправьте в восходящий поток , но на этот раз используйте "Настроенный удаленный репозиторий" в качестве целевого репозитория Git.
  • Иди и принеси себе заслуженную чашку кофе!


1

Вы пробовали использовать протокол ssh вместо git + ssh? У меня такая же проблема, и это решило ее, хотя в официальной документации указано использовать git + ssh


1

В Windows настройка GIT_SSHopenssh, поставляемая с msys git, не работала (Eclipse завис во время фиксации). Установка TortoisePlink решила проблему (я думаю, оригинальный плагин тоже подойдет). Дополнительный бонус - теперь Eclipse использует ключи, хранящиеся в pageant.


1

Я решил это, выбрав https в качестве протокола, а затем добавив свое имя пользователя и пароль github


1

В вашем представлении GIT, где у вас есть ваши репозитории, вы увидите такую ​​структуру, как:

  • ветви
  • теги
  • Ссылки
  • пульты
  • и т.д...

Щелкните по пультам дистанционного управления, щелкните правой кнопкой мыши URL-адрес репозитория и выберите «Изменить учетные данные».



0

У меня была та же проблема, которая, похоже, была связана с проблемой конфигурации. Приложение github для mac osx создало закрытый ключ ssh под названием github_rsa

В вашем Eclipse перейдите к Window > Preferences > Network Connections > SSH2

В общей вкладке вы должны увидеть SSH2 home /Users/<you username>/.ssh вы, вероятно, увидите id_dsa, id_rsa, определенные как закрытые ключи.

Нажмите «Добавить закрытый ключ» и выберите расположенный на github_rsa /Users/<you username>/.ssh


0

ЕСЛИ У ВАС ЕСТЬ ФАЙЛ PEM : В Eclipse перейдите в Окно> Настройки> Сетевые подключения> SSH2 , а затем добавьте путь к вашему файлу PEM в «Закрытые ключи», и это должно решить проблему.


0

Я хотел обнародовать исправление кода Google и получил ту же ошибку. Началось с этого видео, но при сохранении и публикации произошла ошибка. Я видел, что по этому поводу есть несколько вопросов. Некоторые из них являются пользователями Windows, им повезло больше всего, потому что обычно нет проблем с разрешениями, а некоторые - пользователи Linux.

У меня есть Mac для мобильной разработки, и я очень часто сталкиваюсь с этой проблемой. Источником этих проблем являются «независимые от платформы» решения, которые мало заботятся о Mac, и у них нет доступа к связке ключей, где хранятся сертификаты, файлы .pem и так далее.

Все, что я хотел, - это не делать никаких настроек среды или командной строки, а просто щелкать по графическому интерфейсу, как обычный пользователь.

Половина была сделана с помощью плагина Eclipse Git, вторая часть (отправка на Github) была сделана с помощью Mac Github

Легко и приятно :)

Все можно сделать с помощью этого собственного приложения, если я начну его изучать, мне просто нужна функция push от него.

Надеюсь, это однажды поможет пользователю Mac.


0

Я обнаружил, что если я настрою двухэтапную аутентификацию в github, Eclipse не сможет подключиться к Github - что имеет смысл, потому что двухэтапная аутентификация в github требует, чтобы вы вводили номер из SMS (а Eclipse не у меня есть эта информация).

Если это ваш сценарий, вы можете рассмотреть возможность деактивации двухэтапной аутентификации в github и посмотреть, поможет ли это.


0

Для существующих ключей ssh, я думаю, это ошибка в Eclipse Juno 3.8.

Что я сделал:

1) Загрузите существующий ключ, перейдя в: Окно> Настройки> «Поиск по ssh»> Вкладка «Управление ключами»> «Загрузить существующий ключ»> Выберите закрытый ключ, который у вас уже есть.

2) Сохраните этот ключ, нажав кнопку Сохранить закрытый ключ . Назовем его id_dsa_github

3) Теперь проверьте, работают ли толкать и тянуть. Так должно быть.

4) Теперь на вкладке «Общие» удалите закрытый ключ id_dsa_github и добавьте свой предыдущий закрытый ключ, нажав кнопку « Добавить закрытый ключ».

Теперь можно идти. Я полагаю, что для регистрации в EGit требуется как минимум один раз .


0

Я столкнулся с той же проблемой.

Я думал, что это как-то связано с моими учетными данными и аутентификацией.

Затем, наконец, я понял, что настроенный мной URI не является вариантом HTTP.

Я пытался нажать на SSH URI своего Git с конфигурацией HTTP.

Проверьте свой URL в

Git Perspective> Remote> Origin> Configure Fetch> Change> Убедитесь, что prtocal - HTTPS, а URL - версия https .


0

Я мог бы использовать консоль для толкания / извлечения репозиториев, но не в eclipse. В моем случае eclipse не может прочитать мой закрытый ключ SSH, мой ключ начинался с:

-----BEGIN OPENSSH PRIVATE KEY-----

И я заметил, что ключ моего коллеги начинается с:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

Я думаю, что в настоящее время eclipse не может использовать этот новый тип ключа (OPENSSH PRIVATE KEY).

Я решил это: Восстановите свой ключ ssh с помощью команды:

ssh-keygen -m PEM -t rsa -b 2048

Это будет использовать старый способ генерации ключа: поэтому он будет начинаться с заголовков:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED

см. дополнительную информацию о:

https://github.com/duplicati/duplicati/issues/3360

Затем вы можете снова загрузить ключ в eclilpse, используя Настройки -> Сетевые подключения -> SSH2, нажмите «Добавить закрытый ключ» (все равно выберите свой закрытый ключ, даже если вы уже видите имя в списке закрытых ключей, потому что eclipse должен перезагрузите его)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.