Невозможно использовать Team -> Git -> Мастер клонирования в Netbeans 12 для подключения к репозиторию github с помощью SSH
Я использую Apache Netbeans 12 в Windows, и мне очень трудно подключиться к своим репозиториям github с помощью SSH-соединения. У меня сложилось сильное впечатление, что это было проблемой для пользователей Netbeans в течение долгого времени. Что я пробовал до сих пор:
- Я установил openSSH в Cygwin, который использую для запуска терминала в Netbeans. Это позволило мне использовать ssh-agent.
- Я попытался запустить ssh-agent и добавить соответствующий закрытый ключ, который соответствует открытому ключу в моем репозитории Git.
- У меня нет проблем с клонированием этого репо с помощью git bash и автономной оболочки Cygwin (теперь, когда у меня запущен ssh-agent), но мастер Team->Git->Glone в Netbeans дает мне эту ошибку подключения:
- Вот документация по "Клонированию репозитория из GitHub через
протокол SSH" с помощью github в Netbeans 7 или 8:
https://netbeans.org/kb/docs/ide/git.html - А вот документация по "Клонированию репозитория из GitHub
через протокол SSH" для Netbeans 12:
https://netbeans.apache.org/kb/docs/ide/git.html - Насколько я могу судить, документация, объясняющая, как клонировать репозиторий по протоколу SSH, осталась без изменений, но ошибка, указанная здесь в версии 7: https://bz.apache.org/netbeans/show_bug.cgi?id=251253 несмотря на то, что он закрыт, для меня остается нерешенным Я попытался изменить папку.ssh и получил ту же ошибку с Netbeans 12.
- https://netbeans.org/nonav/bugzilla/show_bug.cgi?id=199263 продолжает сагу, требуя закрывать проблемы.
- Этот отчет об ошибке https://netbeans.org/nonav/bugzilla/show_bug.cgi?id=218918 отражает мой опыт:
Dev строит, но это так, сколько я себя помню. Я не могу использовать NetBeans для выполнения каких-либо операций Git, требующих аутентификации SSH: отправка на GitHub, извлечение данных из частного репозитория и т. Д. Те же операции с использованием командной строки Git работают нормально, но в NetBeans мне предлагается ввести имя пользователя и пароль, или для закрытого ключа с парольной фразой. Из командной строки в этом нет необходимости, поскольку я использую ssh-agent для разблокировки моего закрытого ключа без необходимости каждый раз вводить кодовую фразу; очевидно, что библиотека Git, используемая NB, не может взаимодействовать с ssh-agent, поэтому она не работает.
Это тот ответ (помните о Netbeans 7, я все еще борюсь с версией 12), который меня расстраивает:
"Похоже, что автоматическое использование ssh-agent теперь работает; возможно, был нарушен только для репозиториев, которые я пытался извлекать / извлекать в NetBeans до этого исправления ".
Нет, это не так. Я просто не могу заставить Netbeans клонировать репозиторий github, следуя стандартной документации мастера.
- Вот характерный вопрос Stackru о Netbeans 8: Netbeans 8.2 не может проверить учетные данные Git? Четких ответов или полезных комментариев нет, но у человека такая же проблема, как и у меня с SSH-соединениями.
- Этот отчет об ошибке - это та же старая история: https://bz.apache.org/netbeans/show_bug.cgi?id=247761 и включает в себя:
Джон Гибсон прокомментировал проблему GitLab CE № 624( https://gitlab.com/gitlab-org/gitlab-ce/issues/624), что он столкнулся с аналогичной ошибкой. Он объясняет, что "обнаружил, что все доступные шифры на сервере имеют не менее 256 бит. Стандартный Oracle Java поставляется с криптовалютой, которая ограничена 128 битами для некоторых алгоритмов. После установки пакета шифрования неограниченной силы от Oracle проблема исчезла. Обратите внимание, что пакет безлимитной силы легально доступен только в США. Если вы находитесь за пределами США, я думаю, что вместо него будет работать OpenJDK ".
Я перешел по ссылке, которую он упомянул ( http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html), загрузил файлы политики юрисдикции неограниченной надежности Java Cryptography Extension (JCE) 7 и выполнил действия, указанные в файле readme, прилагаемом к загрузке.
- Я попробовал эту загрузку, и в readme.txt четко сказано:
"Текущие версии JDK не требуют отдельных неограниченных файлов политик. Они предназначены для использования со старыми версиями. Неограниченные файлы политик для более ранних выпусков требуются только для обновлений JDK 7 до 7u171 ".
Так что это тоже не работает. Я в полном тупике. Что мне нужно сделать, чтобы последняя, самая лучшая версия Netbeans нормально работала с соединениями github и SSH?
5 ответов
Я использую macOS и смог это исправить, но порядок вещей немного сложный.
Сначала перейдите в папку SSH и удалите известные хосты (или удалите из нее раздел GitHub):
cd ~/.ssh
rm known_hosts
Затем измените формат ключа, как описано в разделе «Недопустимый закрытый ключ» при использовании JSch :
cp yourkeyfile yourkeyfile.bak
ssh-keygen -p -f yourkeyfile -m pem
Затем убедитесь, что он работает (введите
yes
при запросе продолжения, который снова создает файл известных хостов):
ssh -T git@github.com
Закройте NetBeans, если он все еще работает, и запустите его снова.
В диалоговом окне клонирования оставьте поля ключа и парольной фразы пустыми.
У меня была такая же проблема, и после долгих поисков я нашел, как ее решить. Речь идет о способе генерации закрытых ключей.
Проверить это .
Попробуйте вообще без Cygwin.
Запустите Netbeans по упрощенному пути, который включает только:
- Windows
- Ява
- Git
То есть:
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\
set GH=C:\path\to\git
set PATH=%GH%\bin;%GH%\usr\bin;%GH%\mingw64\bin;%PATH%
set PATH=C:\path\to\java\bin;%PATH%
Git для Windows включает в себя все необходимое для работы OpenSSH.
Кажется, у меня была аналогичная проблема, но на MacOS. Для меня решением было изменить разрешения на
id_rsa
файл, как предлагается здесь, в
400
, что означает доступ только для чтения для владельца и никакого доступа для всех остальных. Не знаю, как установить эквивалентные разрешения в Windows, но это может вам помочь.
Я не уверен, поможет ли это, но у меня также были проблемы с клонированием репозитория с помощью мастера NetBeans, но они исчезли на следующий день, вероятно, из-за перезагрузки Windows или перезапуска NetBeans. Также кажется, что NetBeans не поддерживает никаких сокращений, которые вы могли указать в файле.ssh/config. Поэтому вам нужно использовать здесь длинную форму "user@hosturl.xx/...". Это могло бы объяснить, почему команда git clone работала из командной строки, а не в мастере.