Github, Puttygen и Pageant: В доступе отказано (publickey)

3

Я использую msysgit на Windows 7, а также пакет PuTTY .

Я открыл Puttygen и нажал кнопку «Создать». Я переместил свой курсор вокруг, чтобы «генерировать некоторую случайность». После того, как ключ был создан, я ввел ключевую фразу для ключа и нажал «Сохранить закрытый ключ». Я сохранил файл как "private.ppk" в каталоге c:/Users/Kristen/.ssh.

Затем я нажал «сохранить открытый ключ» и сохранил файл как «public.pub» внутри c:/Users/Kristen/.ssh.

Затем я скопировал содержимое поля с надписью «Открытый ключ для вставки в файл авторизованных ключей OpenSSH». Я не копировал содержимое public.pubфайла, потому что я знаю, что есть дополнительные данные, которые сломают ключ.

Я зашел в свою учетную запись GitHub, зашел в «Настройки»> «Ключи SSH» и нажал кнопку «Добавить ключ SSH». Я дал ключу название, затем вставил ключ, скопированный из Puttygen, и нажал «Добавить ключ». Ключ был успешно сохранен.

Я открыл Pageant и нажал «Добавить ключ». Я выбрал файл "public.ppk" из c:/Users/Kristen/.ssh. Я ввел ключевую фразу.

Я открыл Git Bash и набрал ssh git@github.com. Он спросил меня, хочу ли я добавить github.com в список известных хостов. Я напечатал yes. Тогда я получил эту ошибку:

В доступе отказано (publickey).

Затем я набрал ssh -v git@github.comи получил этот вывод:

введите описание изображения здесь

Я увидел, что он искал id_rsa, поэтому я создал каталог с именем id_rsaи поместил в него свои ключи.

Затем я набрал еще ssh git@github.comраз, и получил это сообщение:

Введите пароль для ключа c:/Users/Kristen/.ssh/id_rsa:

Я ввел ключевую фразу для своего закрытого ключа, но он продолжал спрашивать снова и снова.

Затем я удалил эту папку и изменил имя моего закрытого ключа на id_rsa.ppk, но получил то же самое сообщение «Permission denied (publickey)».

Я зашел в Панель управления> Система> Свойства системы> Дополнительно> Переменные среды, и моя GIT_SSHпеременная была установлена ​​в значение c:\Program Files (x86)\PuTTY\plink.exe, и я подтвердил, что Plink действительно живет в этой папке.

Не уверен, что еще попробовать. Предложения?

kmgdev
источник

Ответы:

1

Я увидел, что он искал закрытый ключ в папке с именем id_rsa.

Нет, я могу заверить вас, id_rsaэто будет имя файла закрытого ключа ssh , а не каталога.

Ваши ключи должны быть в %HOME%/.ssh, но если вы используете plink и Pageant (а не openssh), убедитесь, что GIT_SSHссылка на переменную окружения plink.exe.
Смотрите, например, « Как мне установить GIT для использованияPlink.exe ».

env var

Смотрите этот урок, чтобы сгенерировать ваши ключи .

VonC
источник
Ах, я предположил, так id_rsaкак не имел расширения, это был каталог. В любом случае, я подтвердил, что путь к Plink в моей GIT_SSHпеременной правильный, и я обновил свой вопрос, чтобы включить его.
kmgdev
@kgrote попытайтесь восстановить ваши ключи, следуя nathanj.github.com/gitguide/tour.html#pushing (и опубликуйте новый открытый ключ)
VonC
Хм, это нормально работает, когда я git push, но не когда я использую sshкоманду. Очевидно, это не имеет значения, но чертовски раздражает.
kmgdev