Ошибка прав доступа github (ключ ssh не распознан) - PullRequest
18 голосов
/ 05 марта 2012

Кажется, я потерял свои права на учетную запись github после отправки на нее из другого (локального) хранилища. Сейчас я получаю следующую ошибку:

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

Затем я предпринял следующие шаги для восстановления ключа:

ssh-keygen
Set up an ssh on my account for this laptop, using id_rsa.pub

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

ssh-add -l
Could not open a connection to your authentication agent.

Есть мысли?

Ответы [ 4 ]

53 голосов
/ 02 ноября 2012

Я решил эту проблему, следуя пошаговым инструкциям:

Шаг 1: Проверка ключей SSH

$ cd ~/.ssh
# Checks to see if there is a directory named ".ssh" in your user directory
# If it says "No such file or directory" skip to step 3. Otherwise continue to step 2.

Шаг 2: Резервное копирование и удаление существующих ключей SSH

$ ls
# Lists all the subdirectories in the current directory
# config  id_rsa  id_rsa.pub  known_hosts

$ mkdir key_backup
# Makes a subdirectory called "key_backup" in the current directory

$ cp id_rsa* key_backup
# Copies the id_rsa keypair into key_backup

$ rm id_rsa*
# Deletes the id_rsa keypair

Шаг 3 : создание нового ключа SSH

$ ssh-keygen -t rsa -C "your_email@youremail.com"
# Creates a new ssh key using the provided email

# Generating public/private rsa key pair.
# Enter file in which to save the key (/home/you/.ssh/id_rsa):    
# Enter passphrase (empty for no passphrase): [Type a passphrase]
# Enter same passphrase again: [Type passphrase again]    
# Your identification has been saved in /home/you/.ssh/id_rsa.
# Your public key has been saved in /home/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com

Шаг 4 :Добавьте свой SSH-ключ в GitHub

$ sudo apt-get install xclip
# Downloads and installs xclip

$ xclip -sel clip < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard

Затем перейдите в hithub и выполните:

  1. Перейдите в настройки своей учетной записи
  2. Нажмите "SSH Keys" влевая боковая панель
  3. Нажмите «Добавить ключ SSH»
  4. Вставьте ключ в поле «Ключ»
  5. Нажмите «Добавить ключ»
  6. Подтвердите действиевведя свой пароль GitHub

Шаг 5 : Проверьте все

$ ssh -T git@github.com
# Attempts to ssh to github

Если все в порядке, вы увидите

Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.

В противном случае (это случилось со мной), вы увидите

Agent admitted failure to sign using the key.
# debug1: No more authentication methods to try.
# Permission denied (publickey).

Чтобы решить эту проблему

$ ssh-add
# Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
# Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

Для оригинальной информации

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

https://help.github.com/articles/error-agent-admitted-failure-to-sign

4 голосов
/ 30 августа 2013

Если у вас уже есть открытый ключ в ~ / .ssh (и вы уже добавили этот ключ в свою учетную запись github), вам может потребоваться только снова загрузить свой ключ в агент SSH.

Чтобы проверить, есть ли у агента SSH ключ, введите ssh-add -l Если результат:

The agent has no identities.

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

ssh-add ~/.ssh/github_rsa

(github_rsa - это имя на моей машине для сохраненного ключа SSH. Этот файл, помимо прочего, также может называться: id_rsa)

После этого вам необходимо ввести ключевую фразу для ключа (вероятно, это ваш пароль для входа в github). Если вы получили сообщение, подобное этому:

Identity added: /Users/name/.ssh/github_rsa (/Users/cpotzinger/.ssh/github_rsa)
3 голосов
/ 07 мая 2014

делает $ ssh-add Это помогло мне решить следующее также для gitlab

jovimac-2:work joviano$ git clone git@git.xyz.com:bjetfweb.git
Cloning into 'bjetfweb'...
Access denied.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
1 голос
/ 05 марта 2012

Вы должны экспортировать свой ключ на сервер с помощью команды

ssh-copy-id user@host

, и ssh-agent должны запускаться перед вашим ssh-add.Вы можете поместить эту строку в /etc/rc.local, если вы работаете под Linux:

eval $(ssh-agent)

Редактировать : теперь я знаю, что вы используете Windows, поэтому просмотрите эту ветку: Получение ssh-агент для работы с git запускается из командной оболочки Windows

...