разрешение отклонено (publickey) Ошибка при использовании git на windows 7 - PullRequest
62 голосов
/ 24 января 2010

Когда я хочу нажать на github с помощью этой команды

git push origin master

Я получил это

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Итак, что не так?

Ответы [ 15 ]

72 голосов
/ 11 мая 2013

ЭВРИКА!

Видимо, вы можете использовать plink в качестве основного клиента ssh и просто загрузить свои ключи в pageant (если вы похожи на меня, вы уже это делаете):

Вы можете сделать это, установив для переменной GIT_SSH env значение plink.exe path следующим образом:

set GIT_SSH = C: \ Program Files \ PuTTY \ plink.exe

или вы можете использовать plink от TortoiseGit:

set GIT_SSH = c: \ Program Files \ TortoiseGit \ bin \ TortoisePLink.exe

Кредит : оригинальное решение взято из этого сообщения в блоге

43 голосов
/ 01 июля 2011

Мне удалось решить эту проблему следующим образом:

Когда вы делаете:

ssh-keygen -t rsa

он предлагает вам (необязательно) ввести имя файла для сохранения сгенерированных ключей. Указание имени файла потратило впустую весь мой день! На следующий день я позволил ему использовать по умолчанию имя файла и проблемы исчезли! Представить!!

Платформа была Win7 и msysgit.

34 голосов
/ 27 ноября 2014

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

Платформа: Windows 7

Установить msysgit из http://msysgit.github.io/

Во время установки примите все параметры по умолчанию, кроме случаев, когда появляется опция «Выбор компонентов». Когда это появится, выберите «Git Bash Here». Хотя в этом нет необходимости, при работе в Windows Explorer добавлено хорошее контекстное меню, которое мне показалось очень полезным.

enter image description here

После установки msysgit также будет установлен Git Bash. Откройте Git Bash одним из двух способов:

  • Нажмите кнопку Пуск в Windows и начните вводить Git Bash
  • Или щелкните правой кнопкой мыши где-нибудь (например, на рабочем столе) и выберите Git Bash Here. Эта опция доступна, только если установлено контекстное меню «Git Bash Here».

В командном окне Git Bash введите это:

$ ssh-keygen -t rsa

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

enter image description here

Откройте файл открытого ключа в Блокноте. Файл должен находиться здесь:

C:\Users\{username}\.ssh\id_rsa.pub

Скопируйте все содержимое файла в буфер обмена, а затем перейдите на страницу настроек SSH в GitHub:

https://github.com/settings/ssh

Выберите «Добавить ключ SSH», введите полезный «Заголовок» и вставьте содержимое в текстовое поле «Ключ».

Чтобы упростить свою жизнь, вы можете использовать агент SSH, чтобы сохранить вашу фразу-пароль, чтобы вам не нужно было ее запоминать. Для этого введите это в Git Bash:

$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/id_rsa

Вам будет предложено ввести ваш пароль. Если все получится, ваша личность будет добавлена. Примечание: эта фраза будет забыта, как только вы закроете свою оболочку. Я не уверен, как сделать так, чтобы это сохранялось между сеансами, но, возможно, кто-то может помочь?

Чтобы проверить, что все работает, введите это в Git Bash:

$ ssh -T git@github.com

Вы должны увидеть сообщение об успехе.

Источники:

https://help.github.com/articles/generating-ssh-keys/

https://help.github.com/articles/working-with-ssh-key-passphrases/

explanation on why eval `ssh-agent -s` should be used instead of just ssh-agent -s

https://stackoverflow.com/a/17848593/188740

11 голосов
/ 24 января 2010

Вы сгенерировали для себя SSH-ключ и добавили его в свою учетную запись Github? У них есть руководство для этого здесь .

7 голосов
/ 03 июня 2013

Использование Windows 8 для настройки вашего ssh и Github

  1. Если написано «Отказано в доступе (publickey)», вам нужно будет ввести ключевую фразу для вашего ключа. Не поддавайтесь искушению просто нажать Enter ... это было то, что сработало для меня ... Мне потребовалось пять часов, чтобы понять, что нажатие Enter заставило OpenSSH почувствовать, что ваш ключ был слишком открытым, поэтому он отказывает вам в посещении следующий шаг.

  2. Если в нем указано «Подлинность хоста github.com (203.232.175.90) ​​не может быть установлена». Тогда вам придется пройти процесс, показанный здесь: [Google] (https://help.github.com/articles/error-permission-denied-publickey.)

Перейдите к части, которая гласит: «Убедитесь, что открытый ключ прикреплен к вашей учетной записи GitHub». Вы хотите начать с части, которая говорит счет. (Я предполагаю, что у вас уже есть аккаунт.

Кроме того, вы хотите быть в C: \ RailsInstaller \ Git.ssh, и когда я сделал 'dir', я заметил, что у меня есть '', '..', 'known_hosts'. Мне нужно было получить новый ключ, выполнив следующее (я нашел это на сайте Github):

"ssh-keygen -t rsa -C" your_email@example.com " # Создает новый ключ ssh, используя предоставленное письмо в качестве метки # Генерация пары открытый / закрытый ключ RSA. <# Введите файл, в котором необходимо сохранить ключ (/c/Users/you/.ssh/id_rsa): [Нажмите enter] "</p>

И обратите внимание на файл, в котором будет сохранен ключ. Не просто нажмите enter .. мой показывал "(//.ssh/id_rsa)" Я должен был напечатать "/.ssh/id_rsa", чтобы убедиться, что он находится в правильном каталоге.

И вы сможете набрать ssh в командной строке. Если вы не можете сделать это, вам придется добавить его на свой путь.

4 голосов
/ 21 августа 2014

Я решил похожую проблему, добавив Переменная системной среды . Ключ был в том, что я указываю на git.exe внутри папки cmd

имя: GIT
значение: C: \ Program Files (x86) \ Git \ cmd \ git.exe

3 голосов
/ 12 мая 2015

Если вы уже сгенерировали ключ и у него есть имя по умолчанию, проблема может быть в отсутствующей переменной среды.

В Windows 7 щелкните правой кнопкой мыши «Мой компьютер» и перейдите в свойства.Там нажмите на дополнительные свойства и нажмите кнопку Переменные среды.Там добавьте переменную среды пользователя

Name: HOME 
Value: %USERPROFILE%
3 голосов
/ 13 сентября 2012

может быть что-то не так с вашими геройскими ключами. попробовать:

heroku keys:add

похожий вопрос здесь: Heroku Git - смертельно: удаленный конец неожиданно зависает

2 голосов
/ 23 февраля 2012

Проблема может быть связана с порядком, в котором ssh.exe находится в переменной окружения PATH.

В моем случае файл ssh.exe находился как в C: \ Program Files (x86) \ git, так и в моем каталоге C: \ cwgwin. Когда я был в моем Git Bash, все работало нормально (он использовал ssh в каталоге git), но когда я был в командной строке, он использовал ssh в моем каталоге cygwin.

Когда я попытался получить доступ к github, он не смог найти папку .ssh с моим закрытым ключом, потому что ключ не был присоединен к ssh, который использовала командная строка (то есть C: \ cygwin), и именно поэтому Я получаю ошибку «Отказано в доступе».

Я переименовал (или удалил) git.exe и ssh.exe в моем каталоге C: \ cygwin и убедился, что C: \ Program Files (x86) \ git отображается перед C: \ cwgwin в ПУТЬ заказ.

1 голос
/ 02 июня 2012

Вот решение очень специфической проблемы с такой же сигнатурой ошибки. Это была ошибка, которую я сделал, и это очень легко сделать. По сути, вместо этого

  git remote add origin git@github.com:myusername/myrepo.git

Я сделал это (обратите внимание на опечатку)

  git remote add origin get@github.com:myusername/myrepo.git

http://www.celticwolf.com/blog/2011/02/08/git-permission-denied-publickey/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...