Как устранить ошибку Permission denied (publickey) при использовании Git? - PullRequest
531 голосов
/ 15 апреля 2010

Я на Mac Snow Leopard и только что установил git.

Я только что попробовал

git clone git@thechaw.com:cakebook.git

но это дает мне эту ошибку:

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Чего мне не хватает?
Я также попытался сделать ssh-keygen без пароля, но все еще та же ошибка.

Ответы [ 37 ]

6 голосов
/ 08 ноября 2012

В Windows убедитесь, что все ваши приложения согласны с HOME. Msys на удивление НЕ сделает это за вас. Мне пришлось установить переменную окружения, потому что ssh и git не могли договориться о том, где находится мой каталог .ssh.

5 голосов
/ 30 мая 2014

Вы в корпоративной среде ?Возможно ли, что ваши системные переменные недавно изменились?За этот ТАК ответ, ssh ключи живут на %HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub.Так что, если %HOMEDRIVE% недавно изменилось, git не знает, где искать ваш ключ и, следовательно, все аутентификационные вещи.

Попробуйте запустить ssh -vT git@github.com.Обратите внимание, где находится identity file.Для меня это указывало не на мой обычный \Users\MyLogin, а скорее на сетевой диск, из-за изменения переменных среды, выдвигаемых на уровне сети.

Решение?Поскольку мой новый %HOMEDRIVE% имеет те же права доступа, что и мои локальные файлы, я просто переместил туда свою папку .ssh и назвал ее день.

5 голосов
/ 02 мая 2012

В основных инструкциях GIT не упоминалось о ключах SSH. Перейдя по некоторым из приведенных выше ссылок, я обнаружил страницу справки git, в которой пошагово объясняется, как именно это сделать для различных операционных систем (ссылка будет определять вашу ОС и, соответственно, перенаправлять):

http://help.github.com/set-up-git-redirect/

Он просматривает все необходимое для GITHub, а также дает подробные объяснения, такие как «зачем добавлять ключевую фразу при создании ключа RSA». Я решил опубликовать это, если это поможет кому-то еще ...

5 голосов
/ 18 мая 2016

Ребята, вот как это работает для меня:

1- Откройте терминал и перейдите к пользователю [см. Прикрепленное изображение]

2- Откройте папку .ssh и убедитесь, что она не работаетиметь любой файл, такой как id_rsa или id_rsa.pub, в противном случае иногда он не будет правильно переписывать файлы

3 - git --version [Проверка установки и версии git]

4- git config --global user.email "идентификатор вашей электронной почты"

5- git config --global user.name "ваше имя"

6- git config --list [убедитесь, что вы установили свое имя и адрес электронной почты]

7-cd ~ / .ssh

8-ssh-keygen, запрашивает сохранение файла, разрешает ему

9-cat ~ / .ssh / id_rsa.pub [Доступ к вашему публичному ключу и копирование ключа в настройки gerrit]

Примечание : вам не следует использовать команду sudo с Git.Если у вас есть веская причина, по которой вы должны использовать sudo, убедитесь, что вы используете его с каждой командой (вероятно, просто лучше использовать su, чтобы получить оболочку от имени пользователя root).Если вы генерируете ключи SSH без sudo, а затем пытаетесь использовать команду типа sudo git push, вы не будете использовать те же ключи, которые вы сгенерировали

enter image description here

enter image description here

4 голосов
/ 06 ноября 2013

Один из самых простых способов

перейти к терминалу-

  git push <Git Remote path> --all
3 голосов
/ 04 сентября 2014

В дополнение к ответу Руфинуса, ярлык для копирования вашей клавиши ssh в буфер обмена в Windows :

  • type id_rsa.pub | clip

Refs:

3 голосов
/ 03 июля 2016

Если у вас есть более одного ключа, вам может понадобиться ssh-add private-keyfile

2 голосов
/ 23 августа 2016

Это довольно прямо. Введите следующую команду

ssh-keygen -t rsa -b 4096 -C "youremailid@yourdomain.com"

Сгенерируйте ключ SSH. Откройте файл и скопируйте содержимое. Перейдите на страницу настроек GitHub и нажмите на ключ SSH. Нажмите Добавить новый ключ SSH и вставьте содержимое здесь. Вот и все :) Вы не должны видеть проблему снова.

2 голосов
/ 13 декабря 2015

Я только что столкнулся с этой проблемой при настройке моего текущего проекта, и ни одно из вышеуказанных решений не работает. поэтому я попытался посмотреть, что на самом деле происходит в списке отладки, используя команду ssh -vT git@github.com. Я заметил, что моего закрытого ключа с именем файла нет в списке. поэтому переименовав имя файла с закрытым ключом в id_rsa, сделайте свою работу. надеюсь, это поможет.

1 голос
/ 21 ноября 2016

Самое простое решение для этого, когда вы пытаетесь отправить в хранилище с другим именем пользователя:

 git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git
...