Git и SSH авторизация - PullRequest
       12

Git и SSH авторизация

9 голосов
/ 30 марта 2010

Я не могу войти в github сгенерированными ssh-ключами. Я следовал этому руководству: http://help.github.com/linux-key-setup, но на шаге:

ssh git@github.com

Я получаю:

Агент признал невозможность подписать, используя ключ. Доступ запрещен (ОткрытыйКлюч).

Что происходит? И, конечно, я добавляю свою собственную электронную почту пользователя.


Пробовал dsa-key, тоже самое.

Ответы [ 9 ]

49 голосов
/ 13 ноября 2011

Я нашел это, которое мне очень помогло http://playwithrubyandrails.blogspot.com/2011/04/process-for-deploying-app-on-heroku.html

ssh-add ~/.ssh/id_rsa решил мою проблему после генерации соответствующих ключей

13 голосов
/ 26 августа 2012

После генерации ключей ssh ​​я выполнил команду, указанную ниже, как предложено jamesw.

$ ssh-add ~/.ssh/id_rsa

Я ввел свой пароль. Затем попытался клонировать хранилище герою. На этот раз все работало нормально.

6 голосов
/ 20 мая 2011

Это проблема убунту. Экспорт "SSH_AUTH_SOCK = 0" решил проблему для меня. Более подробную информацию можно найти по адресу - https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/201786.

4 голосов
/ 30 марта 2010

Из руководства по устранению неисправностей :

В доступе отказано (публичный ключ)

Обычно это происходит, когда ssh не может найди свои ключи. Убедитесь, что ваш ключ в расположении по умолчанию ~ / .ssh. Если вы запускаете ssh-keygen снова и просто нажмите ввод на всех 3 подсказках, это будет размещаться здесь автоматически. Затем вы можете добавить содержимое id_rsa.pub в мои ключи от github. Если id_rsa.pub не работа попробуйте id_dsa.pub. Вам может понадобиться сгенерируйте новый ключ dsa с помощью ssh-keygen -t dsa, если у вас просто есть ключ rsa.

Если у вас все еще есть проблемы и ничего из вышеперечисленного не получилось, у вас может быть черный список ключей от Debian ошибка open-ssh. вы должны обновить open-ssh и заново сгенерируйте ваши ключи.

Итак, просто чтобы проверить - доступны ли ваши ключи в ~ / .ssh / как id_rsa и id_rsa.pub или нет, вы указываете их использование?

3 голосов
/ 07 сентября 2012

Благодаря этой теме я смог заставить работать gitlab (я знаю, что это не github).

Я тоже нашел ответ @jamesw правильным.

В итоге мне пришлось удалить файл known_hosts и заново создать ключ ssh с тем же паролем, что и моя учетная запись на gitlab.

Затем я сделал ssh-add и сделал git push -u origin master. Успех!

Спасибо за помощь всем.

UPDATE
Я решил переделать свой ключ ssh без пароля и снова столкнулся с этой ошибкой.

На этот раз мне удалось скопировать мой старый known_hosts на новый .ssh/ и просто запустить ssh-add.

2 голосов
/ 11 июня 2015

Эта проблема возникает в основном по следующим причинам:

  • Пара открытых и закрытых ключей неверна. Вы должны проверить ключ открытого ключа на сервере / вашей учетной записи git, где вы разместили открытый ключ. Даже небольшой пробел или табуляция приведут к ошибке.
  • Если вы уверены, что ваш открытый ключ правильный, проверьте формат открытого ключа в папке ~ / .ssh на вашем компьютере. Для openssh вы не можете использовать открытый ключ в формате puttygen и наоборот. Чтобы изменить формат, вы можете использовать следующую команду, используя свой закрытый ключ

    $ ssh-keygen -e -f ~ / .ssh / id_rsa> ~ / .ssh / id_rsa_com.pub
    $ ssh-keygen -i -f ~ / .ssh / id_rsa_com.pub> ~ / .ssh / id_rsa.pub

  • Наконец, проверьте, добавили ли вы свои ключи к клиенту ssh в вашей системе. Вы можете сделать это, используя следующие команды

    $ eval "$ (ssh-agent -s)"

    $ ssh-add

1 голос
/ 08 мая 2012

Решение выше вышеуказанного не работает для меня, но это работает http://ripan27.wordpress.com/2010/04/01/ssh-gitgithub-com-agent-admitted-failure-to-sign-using-the-key-permission-denied-publickey/

0 голосов
/ 29 апреля 2018

Я столкнулся с той же ошибкой, когда скопировал id_rsa и idrsa.pub из другой операционной системы. Эти файлы были 644 разрешения. Поэтому я изменил его на 600. Ошибка была исправлена.

0 голосов
/ 31 марта 2010

Обратите внимание, что ssh-agent за сеанс (для терминала). Используйте менеджер агентов ssh, например keychain (см. Его документацию по настройке), чтобы получить доступ через любой сеанс (из любого термина).

...