Github: Нет доступных методов аутентификации
Я использую github и успешно добавил и синхронизировать файлы на моем ноутбуке в прошлом.
с недавнего времени я начал получать " PuTTY Fatal Error: Disconnected: Нет доступных методов проверки подлинности" после запуска:
git мастер создания тяги (или нажмите)
Однако
ssh git @github.com возвращает правильный ответ:
ОШИБКА: Привет, имя пользователя! Вы успешно прошли аутентификацию, но GitHub не предоставляет доступ к оболочке
Соединение с github.com закрыто.
после копания в github я нашел этот morcel:
Нет доступных методов проверки подлинности
Вы должны знать переменную среды GIT_SSH, которая используется git для поиска вашего ssh-говорящего клиента, если ssh не работает для вас. Установку git можно использовать plink.exe(через GIT_SSH) для выполнения аутентификации. Если это так, убедитесь, что у вас запущен файл pageant.exe, и ключ, который вы создали для загруженного github. Это дает ключ к plink.exe; без него произойдет ошибка выше.
не уверен, что такое plink.exe или peagant.exe.. и тот факт, что ssh git @github.com, кажется, правильно аутентифицирует, заставляет меня задаться вопросом, какое лучшее решение здесь... я, конечно, не хочу если это не необходимо, переустановите мою настройку.
Ответы
Ответ 1
Вы можете создать файл с именем .profile в своем домашнем каталоге, для меня это C:\Users\[user]
Внутри этого файла поместите следующую строку кода:
GIT_SSH="/usr/bin/ssh.exe"
Это установит переменную среды GIT_SSH для использования клиента ssh, включенного в git.
Файл .profile script запускается при запуске командной строки Git Bash.
Изменить:
Это мой .profile. Он запросит у вас пароль при первом запуске командной строки Git, а затем запомнит его с тех пор, пока вы не перезагрузите компьютер. Очень удобно, поэтому вам не нужно вводить пароль каждый раз, когда вы хотите что-то сделать.
SSH_ENV="$HOME/.ssh/environment"
GIT_SSH="/usr/bin/ssh.exe"
function start_agent {
echo "Initializing new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add;
}
# Source SSH settings, if applicable
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
#ps ${SSH_AGENT_PID} doesn't work under cygwin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
Ответ 2
Использование TortoiseGit
TortoiseGit> Настройки... Сеть... Клиент SSH: C:\Program Files\Git\usr\bin\ssh.exe
Место меня меняется. На одном компьютере это было в C:\Program Files (x86)\Git\bin\ssh.exe
![tortoisegit]()
Ответ 3
"... не знаю, что такое plink.exe или peagant.exe..."
Поскольку вы спрашиваете: plink и stant являются частью пакета PuTTY, который представляет собой реализацию SSH, которая поддерживает Linux и Windows и полностью доминирует в Windows.
SSH
Secure Shell (SSH) - это криптографический сетевой протокол для обеспечения безопасности передача данных. Он устанавливает безопасный канал по небезопасной сети в архитектуре клиент-сервер, соединяющей SSH-клиент приложение с SSH-сервером. Обычными приложениями являются удаленные ввод в командной строке, выполнение удаленной команды, но любая услуга сети могут быть защищены SSH.
если вы когда-либо использовали Telnet, это так (но более безопасно): он позволяет удаленно обращаться к командной строке bash хоста Linux.
PuTTY
PuTTY - это бесплатный эмулятор терминала с открытым исходным кодом, последовательная консоль и приложение для передачи сетевого файла. Он поддерживает несколько сетей протоколы, включая SCP, SSH, Telnet, rlogin...
В Windows это доминирующее программное обеспечение для удаленного доступа к командной строке хоста Linux по протоколу SSH (см. выше). В Windows расширения .exe предназначены для исполняемых файлов. Поэтому эти заметки о plink.exe и pageant.exe, вероятно, не применяются, если вы находитесь в Linux. PuTTY включает
Plink: интерфейс командной строки для контуров PuTTY
Pageant: агент аутентификации SSH для PuTTY, PSCP и Plink
От (http://en.wikipedia.org/wiki/Secure_Shell#Key_management)
Когда открытый ключ присутствует на удаленном конце и соответствующий закрытый ключ присутствует на локальном конце, набрав пароль, нет дольше требуется... для дополнительной безопасности сам секретный ключ может быть заблокированным с помощью фраз.
Итак, github размещен на машине Linux и использует SSH для защиты соединения. SSH либо аутентифицируется с помощью паролей или ключей, многие хосты (github?) Только аутентифицируются с помощью ключей. Вы, похоже, пытаетесь аутентифицироваться с помощью ключа. Ключи и хосты не являются одними для одного: у вас могут быть два ключа для одного и того же хоста и/или двух хостов для одного и того же ключа, поэтому им необходимо управлять. Если вы находитесь в Windows, ваш сеанс SSH, вероятно, будет доступен через plink, и ваши ключи, вероятно, будут управляться с помощью Pageant.
Импортируйте необходимый ключ при загрузке Pageant. Если вы следуете инструкциям, которые сказали "импортировать свой ключ", и видели, что он сработал, но теперь он не работает, см. Глава 9: Использование Pageant для аутентификации.
Последний совет, если вы находитесь в Windows: у вас может быть несколько экземпляров набора PuTTY, установленных различными инструментами. Например, TortoiseGit устанавливает свои собственные.
Ответ 4
У меня возникла эта проблема, потому что мой GIT_SSH
указывал на версию TortoiseSVN Plink.exe
. Я изменил его, чтобы указать на версию TortoiseGit, перезапустил cmd и работал.
Я точно не помню, но версия TortoiseSVN могла быть 32-разрядной версией, а версия TortoiseGit была 64-разрядной (находится в Program Files
, а не Program Files (x86)
).
Дважды проверьте ваш GIT_SSH
env var.
Я предпочитаю использовать git с обычным cmd.exe
(конечно, в Console2)
Ответ 5
Для пользователей TortoiseGit в Windows
Первоначально я настраивал большинство своих репозиториев Github/Bitbucket с использованием URL-адресов репозитория SSH, поскольку (изначально) это был единственный удобный способ запретить TortoiseGit запрашивать пароль для каждого отдельного действия.
Но установка TortoiseGit таким образом всегда была мучительно болезненной. Каждый раз у меня уходили часы на правильную настройку, поскольку параметры установки по умолчанию никогда не работали (даже в 2016 году, блин!).
Но TortoiseGit теперь имеет лучшее управление паролями для HTTPS, и Github фактически рекомендует использовать HTTPS URL везде, где это возможно.
SSH URL: [email protected]:User/repo-name.git
HTTPS URL: https://github.com/User/repo-name.git
Преимущества HTTPS:
- Нет управления или генерации ключей SSH
- Нет необходимости постоянно работать
pageant.exe
(который запрашивает ваш пароль при каждом запуске)
- Используя TortoiseGit из Австралии, я обнаружил, что клоны через HTTPS в 5-10 раз быстрее, чем SSH
Ответ 6
Если вы используете Pageant и получаете ошибку, описанную в вопросе, после перезагрузки компьютера (или иным образом закрытие и повторное открытие Pageant):
Ошибка может быть вызвана тем, что Pageant не загружает ваш SSH-ключ GitHub. По умолчанию Pageant НЕ загружает автоматически ключи из предыдущего сеанса при запуске.
Чтобы загрузить ключ:
- Открыть конкурс. (В Windows, если Pageant запущен, на панели задач появится значок. Дважды щелкните его.)
- Нажмите кнопку "Добавить ключ" и продолжите добавление существующего ключа GitHub SSH.
Чтобы избежать этой проблемы в будущем, вы можете настроить Pageant на автоматическую загрузку ключа при его запуске. (Pageant автоматически запросит у вас пароль, если ваш ключ защищен паролем.)
Шаги для этого (при условии, что вы уже настроили Pageant для запуска при запуске Windows):
- Найдите ярлык, используемый Windows для запуска Pageant при запуске Windows. (Он может находиться в папке "Автозагрузка", которую можно открыть с помощью "Пуск"> "Выполнить">
shell:startup
)
- В диалоговом окне "Свойства ярлыка" добавьте полный путь и имя файла ключа SSH в поле "Target".
Ссылка и полная информация: http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html
Ответ 7
Моя проблема заключалась в том, что я пытался использовать свое имя пользователя github. По-видимому, при использовании Github (или это Git вещь?), Если вы используете аутентификацию на основе ключа, вам нужно указать свое имя пользователя git
.
Я не уверен, зачем вам вообще нужно имя пользователя - возможно, кто-то более осведомленный может объяснить это?
Ответ 8
На моем компьютере с Windows 7, запущенном Github для Windows, с помощью git версии 1.8.3.msysgit.0. Я обнаружил, что обновление моей переменной окружения системы GIT_SSH до C:\Program Files (x86)\Git\bin\ssh.exe показалось, что это трюк. Это также устранило мою проблему, связавшись с OpenShift git repo.
Ответ 9
Работала для меня в Windows 8:
Переменная GIT_SSH указывала на plink.exe,
Изменил его в системных настройках, чтобы указать на двоичный файл ssh, и это устранило проблему. Чтобы узнать полный путь к ssh, запустите:
where ssh
Ответ 10
Такая же ошибка, здесь различное решение - Проблема подключения к GitHub в Windows, даже через PuTTY
Ответ 11
Я столкнулся с этой же проблемой, однако решение GIT_SSH появилось для меня однажды. После перезагрузки компьютера я понял, что это что-то еще, поскольку я смог без проблем клонировать мои личные репозитории без использования Git Bash или командной строки, но не в Sublime Text 3 с плагином SublimeGit. Мое решение было простым и на самом деле было упомянуто @BlueRaja - Danny Pflughoeft, но я думал, что он может использовать какое-то направление;)
В принципе вам просто нужно отредактировать ~/.ssh/config
и убедиться, что имя пользователя git
. Вы также можете сказать ему, что используете специальный SSH-ключ для файла Github - My ~/.ssh/config
выглядит следующим образом:
Host gh
Hostname github.com
User git
IdentityFile ~/.ssh/github_rsa.pub
У меня есть конкретный ключ для Github из-за количества других вещей, которые я делаю в течение всего моего дня, но если у вас есть только один, тогда обычно будет ~/.ssh/id_rsa.pub
как Здесь объясняется Github.
Я знаю, что у каждого есть другое решение, но я оставлю это здесь для всех, кто может столкнуться с этой статьей без исправления. Удачи!
Ответ 12
Я получил эту ошибку при использовании TortoiseGit для клонирования репозитория из GitHub. Исправлено нажатием "Load Putty Key" и выбором файла ключа (*.pkk) в диалоговом окне Git.
Ответ 13
Чтобы решить эту проблему, я так и сделал.
Я использовал Git Bash в Windows 10
Я запустил Pageant, нажал кнопку Добавить,
![enter image description here]()
Перейдите в папку C:\Users\username\.ssh и выберите мой ключ
![enter image description here]()
Затем я пытаюсь сделать git push, и на этот раз это сработало.
Ответ 14
Вы можете получить плинк и конкурс: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Это инструменты PuTTY.
Ответ 15
У меня возникла эта проблема (прямой ssh работал, но git pull failed) из-за моего git удаленного, не являющегося тем, кем я думал.
Да, да, я знаю, что это глупая ошибка, но это происходит, и это стоит проверить.
Используйте git remote -v