2013-08-17 2 views
0

Я попытался оттолкнуть свой блог (Octopress) на GitHub и получил эту ошибку:SSH -T [email protected] Доступ запрещен (ОткрытыйКлюч)

MacBook-Air:octopress bdeely$ git push origin source 
Permission denied (publickey). 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

Я сгенерированный ключ SSH, сохранить его, и даже связано это с моей учетной записи GitHub в ключевых параметрах SSH, но я пошел вперед и проверил статус и получил ту же ошибку:

MacBook-Air:.ssh bdeely$ ssh -T [email protected] 
Permission denied (publickey). 

в дополнение к этому, я проверил github's help page, сделал следующее и получил сообщение об ошибке :

MacBook-Air:~ bdeely$ ssh-add -l 
The agent has no identities. 

Кто-нибудь знает, что не так, и как я могу это исправить?

+0

Вы проверяете разрешение двух файлов в папке .ssh? У них должно быть 600 разрешений? Как вы генерируете ключи? –

ответ

2

Выполните команды:

 

    mkdir ~/.ssh //in case that the folder doesnt exist... 
    cd ~/.ssh 

    ssh-keygen -t rsa -C "[email protected]" 
    #hit enter when asks for file to save the key. 
    #enter the passphrase 

В последней копии id_rsa.pub на свой счет GitHub.

+0

Спасибо, Христос. Я уже создал ключи SSH, как указано выше. Как я могу добавить 600 разрешений? – Berzerkeley

+0

в ОС Linux вы можете следующим образом: 'cd ~/.ssh' и ' chmod 600 id_rsa * ' –

+0

Я все еще получаю все те же сообщения об ошибках ... – Berzerkeley

0

Я надеюсь, что это поможет вам:

У меня был идентичные проблемы и о том, чтобы принять мои собственные глаза с безумной фрустрацией; ничто в сети не привело меня к ответу, и я пытался использовать команду git push без указания URL-адреса (что также могло бы решить проблему, я полагаю), поэтому я не видел, как произошло соединение.

Я создал мой .ssh/config правильно для двух пользователей с двумя разными ключами, даже с использованием IdentitiesOnly yes, который предполагается переопределить ssh-agent, автоматически подающий идентификатор SSH НЕПРАВИЛЬНО.

я, наконец, понял, что проблема, как я изучил местную конфигурацию хранилища - это была запись

[remote "origin"] 
    url = [email protected]:{my-username}/{my-repo-name}.git 

Моя конфигурация в .ssh/config файл использует тот же HostName github.com запись для пользователей, так и я совершенно новой для всех так что я не понял, что для правильного переопределения ssh-agent мне нужно было указать точный URL-адрес, иначе конкретные идентификаторы в моем файле .ssh/config были бы проигнорированы, и первый ключ, который был указан ssy-agent (это был не тот мой мой случай) используется по умолчанию.

Я установил это, изменив локальный адрес репо на url = [email protected]:{my-username}/{my-repo-name}.git, где я установил Host github-personal как личность в своем .ssh/config.

Другой способ решения этой проблемы было бы указать пользователя в URL в команде git push себя, или даже лучше, решение, описанное здесь в должности после решения этого мой собственный дерьмовый путь:

https://superuser.com/questions/272465/using-multiple-ssh-public-keys

Я не могу поверить, что ни один официальный источник не мог предложить решение или даже правильно объяснить этот крайний случай, который кажется действительно распространенным (доступ к двум различным учетным записям github с одной машины с SSL).

2

Попробуйте это в вашем терминале:

eval `ssh-agent -s` 

ssh-add ~/.ssh/id_rsa 

ввести пароль, если любой, и он должен работать. Надеюсь, что это помогает :-)

0

На OSX, если вы наберете

ssh-add -l 

и вы получите обратно «нет тождества», это означает, что ваш SSH агент не имеет идентичности, загруженные в нее. Зачастую, когда Mac перезагружается, у вас нет идентификаторов.

добавить шахту назад после повторной загрузки, явно работает

ssh-add 

Это загружает идентификатор по умолчанию из ~/.ssh/id_rsa

Вы также можете использовать команду SSH-добавить с конкретная личность

ssh-add ~/foo/bar/is_rsa 

После добавления лиц, по, вы можете показаться им все перечисленные набрав

ssh-add -l 

Убедитесь, что у вас есть хотя бы один из перечисленных.

0

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