Я впервые использую git, пытаясь настроить egit в Eclipse, поэтому я могу продолжать легко кодировать через Eclipse. Проблема в том, что каждый раз, когда я пытаюсь клонировать репозиторий через egit, он выдает ошибку «Невозможно перечислить доступные ветки. Причина: ssh://[email protected]:22 Парольная фраза для /Users/elifinkelshteyn/.ssh/id_rsa. " Это действительно странно, так как я могу клонировать через терминал, используя тот же самый id_rsa, и я проверил в свойствах Eclipse ssh, что он пытается использовать правильный ключ. Что дает?
Egit отказывается принимать id_rsa
Ответы (5)
Просто для подтверждения: это текущая ошибка (issue 353561).< br> И парольная фраза все еще может быть проблемой в зависимости от шифрования, которое вы использовали при создании ключа (ошибка 326526).
Однако парольная фраза должна поддерживаться (как упоминается в руководстве пользователя Egit).
если вы получаете запрос на ввод фразы-пароля, но eclipse не принимает фразу-пароль, попробуйте следующее:
установите переменную среды GIT_SSH для вашего клиента ssh, например. добавлением
export GIT_SSH=/usr/bin/ssh
к вашему .bash_rc
в Mac OSX откройте терминал и введите:
cd
mkdir .MacOSX
cd .MacOSX
echo "" > environment.plist
open environment.plist
добавьте KEY=GIT_SSH с VALUE=/usr/bin/ssh и сохраните файл.
После повторного входа в свою учетную запись он должен работать.
Как говорит VonC, это ошибка, заключающаяся в том, что реализация SSH, которую использует EGit, не может обрабатывать ничего, кроме зашифрованных закрытых ключей 3DES. Если вы похожи на меня, у вас есть зашифрованные ключи AES, поэтому он просто не может их расшифровать. В этом отчете об ошибке есть комментарий, вот ссылка непосредственно на комментарий https://bugs.eclipse.org/bugs/show_bug.cgi?id=326526#c9
Этот комментарий предоставил рабочий обходной путь: последние версии EGit учитывают переменную среды GIT_SSH, устанавливая для нее значение /usr/bin/ssh или даже plink.exe, если вы работаете в Windows, и это должно решить проблему.
С момента ОП прошло значительное количество времени, и у меня все еще была та же проблема. Для тех, у кого все еще есть эта проблема, это может помочь:
Убедитесь, что вы настроили push-пульт. Это сработало для меня, когда я столкнулся с обеими проблемами Не удается получить ссылки на удаленный репозиторий ("... Парольная фраза для..." и "Ошибка аутентификации" в диалоговом окне "Отправить...").
При условии, что вы уже:
Настройте ключи SSH с помощью Github (Окно > Настройки > Общие > Сетевые подключения > SSH2)
Настройте локальный репозиторий (для этого вы можете следовать этому руководству)
Создан репозиторий Github (то же руководство)
... вот как вы это делаете:
- Перейдите в представление Репозитории Git (Окно > Показать представление > Другое > Репозитории Git).
- Разверните свой репозиторий и щелкните правой кнопкой мыши Remotes --> "Создать Remote".
- «Удаленное имя»: источник, «Настроить push»: установлен флажок --> нажмите «ОК»
- Нажмите кнопку "Изменить...".
- Вставьте свой URI git и выберите протокол ssh --> нажмите "Готово"
- Теперь нажмите «Сохранить и отправить», и СЕЙЧАС вы должны получить приглашение ввести пароль --> введите кодовую фразу открытого ключа здесь (при условии, что вы ДЕЙСТВИТЕЛЬНО (и должны) установить пароль к вашему открытому ключу) --> нажмите "ОК"
- Теперь вы должны получить окно подтверждения с сообщением «Отправлено в YourRepository — origin» --> нажмите «ОК».
- Отправить в восходящий поток, но на этот раз используйте " Настроенный удаленный репозиторий" в качестве целевого репозитория Git.
- Приготовь себе заслуженную чашку кофе!
Похоже, что для вашего файла /Users/elifinkelshteyn/.ssh/id_rsa требуется пароль, и я не уверен, что реализация ssh в Eclipse знает, как запросить его. Это щекочет мой мозг, что, вероятно, есть пакет ssh-auth, который вам нужно установить для Mac, чтобы он мог подсказывать, и если вы можете узнать об этом больше, это, вероятно, идеально. Тем не менее, обходной путь в краткосрочной перспективе — создать новый ключ rsa, который не использует пароль, загрузить его на github и настроить eclipse для его использования.