github: нет поддерживаемых методов аутентификации

Я использую github и успешно добавлял и синхронизировал файлы на моем ноутбуке в прошлом.

в последнее время я начал получать "PuTTY фатальная ошибка: отключено: нет поддерживаемых методов аутентификации" после запуска:

git pull origin master (или нажмите)

ssh git@github.com возвращает правильный ответ: Ошибка: Привет имя пользователя! Вы успешно прошли аутентификацию, но GitHub не предоставляет оболочку доступ Соединение с github.com закрыто.

покопавшись на github, я нашел этот morcel:

нет поддерживаемых методов аутентификации Вы должны знать о переменной среды GIT_SSH, которая используется git для поиска вашего ssh-говорящего клиента, если ssh не работает для вас. Установка git может использовать plink.exe (через GIT_SSH) для выполнения аутентификации. Если да, убедитесь, что у вас есть конкурс.exe работает, и ключ, который вы создали для github заряжен. Это дает ключ к плинк.exe; без него произойдет вышеуказанная ошибка.

Не уверен, что плинк.exe или peagant.ехе.. и то, что ssh git@github.com кажется, правильная аутентификация заставляет меня задуматься,какое лучшее решение здесь.. я, конечно, не хочу усложнять свою установку, если это не необходимо.

14 ответов


Вы можете создать файл с именем ".профиль" в вашем домашнем каталоге, для меня это C:\Users\[пользователь]

внутри этого файла добавьте следующую строку кода:

GIT_SSH="/usr/bin/ssh.exe"

это установит переменную среды GIT_SSH для использования клиента ssh, включенного в git.

The .сценарий профиля выполняется при запуске командной строки Git Bash.

изменить: Это мой.профиль. Он попросит вас ввести пароль при первом запуске команды 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

Используя TortoiseGit

установить TortoiseGit > Настройки > Сеть > SSH-клиент в C:\Program Files (x86)\Git\bin\ssh.exe или C:\Program Files\Git\usr\bin\ssh.exe

tortoisegit


"... не уверен, что плинк.exe или peagant.ехе ..."

поскольку вы спрашиваете: plink & pageant являются частью Putty suite, который является реализацией SSH, который поддерживает Linux & Windows и полностью доминирует в Windows.

SSH

Secure Shell (SSH) - это криптографический сетевой протокол для защиты передача данных. Он устанавливает безопасный канал над небезопасным сеть архитектура клиент-сервер, подключение SSH клиента приложение с SSH-сервером. Общие применения включают remote логин командной строки, удаленное выполнение команд, но любая сетевая служба может быть защищен с помощью SSH.

Если вы когда-либо использовали Telnet, это так (но более безопасно): это позволяет удаленно получить доступ к оболочке bash (командной строке) хоста Linux.

шпаклевка

шпатлевка является свободной и эмулятор терминала с открытым исходным кодом, последовательная консоль и сетевое приложение для передачи файлов. Он поддерживает несколько сетей протоколы, в том числе УПП, СШ, телнет, также rlogin ...

в Windows это доминирующее программное обеспечение для удаленного доступа к командной строке хоста Linux по протоколу SSH (выше). в Windows. ,расширения exe предназначены для исполняемых файлов. Итак, эти заметки о плинке.exe & pageant.ехе, наверное не применяется, если вы находитесь в Linux. Шпаклевка включает

Плинк: интерфейс командной строки для замазки задних концов

конкурс: агент аутентификации 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 suite, установленных различными инструментами. TortoiseGit, например, устанавливает свой собственный.


я испытал эту проблему, потому что мой GIT_SSH указывал на TortoiseSVN версию Plink.exe. Я изменил его, чтобы указать на версию TortoiseGit, перезапустил cmd, и он работал.

Я точно не помню, но версия TortoiseSVN могла быть 32-битной версией, а версия TortoiseGit была 64-битной (расположена в Program Files, а не Program Files (x86)).

проверьте GIT_SSH env var.

Я предпочитаю использовать git с нормальным cmd.exe (в Console2 из конечно)


моя проблема заключалась в том, что я пытался использовать свое имя пользователя github. По-видимому, при использовании Github (или это вещь Git?), Если вы используете аутентификацию на основе ключа, вам нужно установить имя пользователя в git.

Я не уверен, зачем вам вообще нужно имя пользователя - возможно, кто-то более осведомленный может это объяснить?


для пользователей TortoiseGit в Windows

Первоначально я использовал для настройки большинства моих репозиториев GitHub / Bitbucket, используя url репозитория SSH как (первоначально)это был единственный удобный способ предотвратить запрос пароля TortoiseGit на каждое действие.

но настройка TortoiseGit этот путь всегда был волос-pullingly больно. Каждый раз, когда он брал меня часа для правильной настройки по умолчанию варианты установки никогда не работали (даже по состоянию на 2016 год, sheesh!).

но TortoiseGit теперь имеет лучшее управление паролями для HTTPS и GitHub фактически рекомендует использовать HTTPS URLs везде, где это возможно.

SSH URL:git@github.com:User/repo-name.git

HTTPS URL:https://github.com/User/repo-name.git

преимущества HTTPS:

  • нет управления или генерации ключей SSH
  • нет необходимости иметь pageant.exe постоянно работает (который запрашивает ваш пароль при каждом запуске)
  • используя TortoiseGit из Австралии, я нахожу, что клоны по HTTPS 5-10x быстрее, чем SSH

Если вы используете Pageant и получаете ошибку, описанную в вопросе после перезагрузки компьютера (или иным образом закрытия и повторного открытия Pageant):

ошибка может быть вызвана тем, что Pageant не имеет активного ключа GitHub SSH. по умолчанию при запуске Pageant не загружает автоматически ключи из предыдущего сеанса.

чтобы загрузить ключ:

  1. Открытый Конкурс. (В Windows, Если конкурс запущен, он будет иметь значок в системном трее. Дважды щелкните.)
  2. Нажмите кнопку Добавить ключ и перейдите к добавлению существующего ключа GitHub SSH.

чтобы избежать этой проблемы в будущем, вы можете настроить Pageant для автоматической загрузки ключа при его запуске. (Pageant автоматически предложит вам пароль, если ваш ключ защищен паролем.)

шаги для этого (предполагая, что у вас уже есть Pageant, настроенный для запуска, когда Windows начинается):

  1. найдите ярлык, используемый Windows для запуска Pageant при запуске Windows. (Он может быть в папке автозагрузки, которую можно открыть с помощью Start > Run > shell:startup)
  2. в диалоговом окне свойств ярлыка добавьте полный путь и имя файла ключа SSH в поле "цель".

ссылка и полная информация: http://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html


на моей машине Windows 7 работает Github для Windows, используя git версии 1.8.3.msysgit.0. Я обнаружил, что обновление моей системной переменной среды git_ssh до C:\Program файлы (x86)\Git\bin\ssh.exe, казалось, сделал трюк. Это также исправило мою проблему с контактом с Git repo OpenShift.


та же ошибка, другое решение отмечено здесь -проблема подключения к GitHub в Windows, даже через PuTTY


я столкнулся с этой же проблемой, однако решение GIT_SSH, похоже, работало один раз для меня. После перезагрузки компьютера я понял, что это было что-то еще, так как я смог клонировать свои частные репозитории без проблем с помощью Git Bash или командной строки, но не в Sublime Text 3 с плагином SublimeGit. Мое решение было простым и на самом деле, что @BlueRaja-Danny Pflughoeft упомянуто, но я думал, что он может использовать какое-то направление;)

в основном вам просто нужно для редактирования ~/.ssh/config и убедитесь, что имя пользователя git. Вы также можете сказать ему использовать определенный ключ SSH для Github -- My


Я получил эту ошибку при использовании TortoiseGit для клонирования репозитория из GitHub. Исправлено, нажав кнопку "Загрузить ключ шпатлевки" и выбрав файл ключа (*.pkk) в диалоге git clone.


вы можете получить plink & pageant отсюда:http://www.chiark.greenend.org.uk / ~sgtatham/putty/download.html

Это шпаклевочные инструменты.


работал для меня в Windows 8: Переменная GIT_SSH указывала на плинк.исполняемый, Изменил его в Системных настройках, чтобы указать на двоичный файл ssh, и это исправило проблему. Чтобы узнать полный путь к ssh, запустите:

where ssh

Я получил эту проблему (прямой ssh работал, но git pull не удалось) из-за того, что мой git remote не был тем, что я думал.

Да, да, я знаю, что это глупая ошибка, но это случается и это стоит проверить.

использовать git remote -v