Git-разрешение отказано (publickey)


Я на 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 без парольной фазы, но все та же ошибка.

30 459

30 ответов:

эта информация работает на theChaw, но может быть применена ко всем другим репозиториям git, которые поддерживают аутентификацию SSH pubkey. (См.gitolite'у, например, gitlab или github.)

сначала начните с настройки собственного набора пар открытого и закрытого ключей. Этот можно использовать РГА или ОГА, так что в принципе любой ключ установки будет работать. На большинстве систем вы можете использовать ssh-keygen.

  • сначала вы хотите, чтобы компакт-диск в вашем .каталог СШ. Вскрывать терминал и запустить:

    cd ~/.ssh && ssh-keygen

  • Далее вам необходимо скопировать это в буфер обмена.
    • на OS X run:cat id_rsa.pub | pbcopy
    • на Linux run:cat id_rsa.pub | xclip
    • в Windows (через Cygwin/Git Bash) запустите:cat id_rsa.pub | clip
  • добавьте свой ключ в свой аккаунт через веб-сайт.
  • наконец-то настройки .gitconfig.
    • git config --global user.name "bob"
    • git config --global user.email bob@... (не забудьте перезапустить командную строку, чтобы убедиться, что конфигурация перезагружается)

вот это вам должно быть хорошо клонировать и проверять.

дополнительную информацию можно найти на https://help.github.com/articles/generating-ssh-keys (спасибо @Lee Whitney)

более обширное устранение неполадок и даже автоматическое исправление можно выполнить с помощью:

ssh -vT git@github.com

Источник:https://help.github.com/articles/error-permission-denied-publickey/

эта ошибка может произойти, когда вы получаете доступ к URL-адресу SSH (чтение/запись) вместо URL-адреса только для чтения Git, но у вас нет доступа на запись к этому РЕПО.

иногда вы просто хотите клонировать свое собственное РЕПО, например, развернуть на сервере. В этом случае вам на самом деле нужен только доступ только для чтения. Но так как это свой РЕПО, GitHub может отображать SSH URL, если это ваши предпочтения. В этом случае, если открытый ключ удаленного хоста не находится в ваших ключах GitHub SSH, ваш доступ будет быть отвергнутым,, который, как ожидается, произойдет.

эквивалентный случай - это когда вы пытаетесь клонировать чужое РЕПО, к которому у вас нет доступа на запись с SSH URL.

одним словом, если вы хотите клонировать только РЕПО, используйте HTTPS URL (https://github.com/{user_name}/{project_name}.git) вместо SSH URL (git@github.com:{user_name}/{project_name}.git), что позволяет избежать (ненужной) проверки открытого ключа.


обновление: GitHub теперь отображает HTTPS в качестве протокола по умолчанию, и этот шаг, вероятно, может уменьшить возможно неправильное использование URL-адресов SSH.

помощь github ссылке помог мне разобраться в этой проблеме. Похоже, что ключ ssh не был добавлен в ssh-агент. Вот что я в конечном итоге делает.

1:

убедитесь, что ssh-агент включен. Команда запускает ssh-агент в фоновом режиме:

eval "$(ssh-agent -s)"

2:

добавьте свой SSH ключ к ssh-агенту:

ssh-add ~/.ssh/id_rsa

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

посмотрите на ключи, перечисленные в вашем агенте аутентификации (ssh-add-l)
(если вы их не видите, добавьте один из существующих Ключей с помощью ssh-add / path/to/your / key (например: ssh-add ~/.ssh / id_rsa))
(если у вас нет ключей, создать. Видеть: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html или просто google ssh-keygen)

чтобы убедиться, что у вас есть ключ, связанный с вашей учетной записью github:

перейти к: https://github.com/settings/ssh

вы должны увидеть хотя бы один ключ с хэш-ключом, соответствующим одному из хэшей, которые вы видели при вводе ssh-add-l всего минуту назад.

Если вы этого не сделаете, добавьте один, а затем попробовать еще раз.

это работает для меня:

ssh-add ~/.ssh/id_rsa

у меня была небольшая другая ситуация, я вошел в систему на удаленном сервере и использовал git на сервере, когда я запускал любую команду git, я получил то же сообщение

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

я исправил это, изменив файл /etc / ssh_config на моем Mac. от

ForwardAgent no 

до

ForwardAgent yes

получил тот же отчет об ошибке.

исправлено использование HTTP вместо этого. Поскольку я не хочу устанавливать "SSH-ключи" для тестового ПК.

изменить URL на HTTP при клонировании:

git clone https://github.com/USERNAME/REPOSITORY.git

моя проблема немного отличается: у меня есть URL-адрес, установленный при добавлении существующего локального РЕПО к удаленному, используя:

git remote add origin ssh://github.com/USERNAME/REPOSITORY.git

чтобы исправить это, сбросьте URL на HTTP:

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

кстати, вы можете проверить свой URL с помощью команды:

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

надеюсь, что это поможет кому-то вроде меня. : D

Я встретил тот же вопрос, потому что я думал, что разница между SSH и HTTPS и

https://github.com/USERNAME/REPOSITORY.git

ssh://github.com/USERNAME/REPOSITORY.git

так что я изменился с HTTPS до SSH просто изменив https:// до ssh:// ничего в конце url не было изменено.

но правда:

https://github.com/USERNAME/REPOSITORY.git

git@github.com:USERNAME/REPOSITORY.git

что означает, что я изменил ssh://github.com/USERNAME/REPOSITORY.git до git@github.com:USERNAME/REPOSITORY.git это работает.

глупая ошибка, но Надежда кому-то помогает!

я боролся с той же проблемой, что и я, и я смог клонировать РЕПО. Я следовал этой процедуре для iMac.

первый шаг: проверка, если у нас уже есть открытый ключ SSH.

  1. Открыть Терминал.
  2. введите ls -al ~/.ssh чтобы увидеть, если существующие ключи SSH присутствуют:

Проверьте каталог, чтобы увидеть, если у вас уже есть ключ SSH.По умолчанию являются одним из после d_dsa.паб,id_ecdsa.паб,id_ed25519.паб,id_rsa.паб

если вы не нашли, то перейдите к Шагу 2 в противном случае следуйте шагу 3

Шаг 2: создание открытого ключа SSH

  1. Открыть Терминал.
  2. введите команду followong с действительным адресом электронной почты, который вы используете для github ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. вы увидите следующее в терминале Generating public/private rsa key pair. Когда он запрашивает"Enter a file in which to save the key," нажмите Enter. Это принимает файл по умолчанию местоположение. Когда он запрашивает Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] просто нажмите enter еще раз. В командной строке введите безопасный пароль.
  4. Enter passphrase (empty for no passphrase): [Type a passphrase] нажмите enter, если вы не хотите Enter same passphrase again: [Type passphrase again] нажмите enter еще раз

это будет генерировать id_rsa.pub

Шаг 3: Добавление SSH-ключа к ssh-агенту

  1. терминалов типа eval "$(ssh-agent -s)"
  2. добавьте свой SSH-ключ к ssh-агенту. Если вы используете существующий SSH ключ, а не создавать новый SSH ключ, вам нужно будет заменить id_rsa в команде с именем существующего закрытого ключа файл. Введите эту команду $ ssh-add -K ~/.ssh/id_rsa

теперь скопируйте ключ SSH, а также добавьте его в учетную запись github

  1. в терминале введите эту команду с именем вашего ssh файла pbcopy < ~/.ssh/id_rsa.pub это позволит скопировать файл в буфер обмена Теперь откройте учетную запись github перейдите в настройки > SSH и GPG ключи > новый SSH ключ введите название и вставьте ключ из буфер обмена и сохранить его. Вуаля все готово.

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

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

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

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

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

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

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

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

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

  git push <Git Remote path> --all

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

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

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

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

4-git config --глобальный пользователь.электронной почты "ваш электронный адрес"

5 - git config --global user.name "твое имя"

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

7-cd ~/.ssh

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

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

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

enter image description here

enter image description here

в дополнение к ответу Руфина, ярлык для копирования вашего ssh-ключа в буфер обмена в Windows - это:

  • type id_rsa.pub | clip

ссылки:

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

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

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

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

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

Я похож ошибка отказа в разрешении (publickey) при попытке запустить makefile.

в качестве альтернативы приведенным выше шагам SSH вы можете установить собственное приложение GitHub для Mac.

клик скачать GitHub для Mac от -https://help.github.com/articles/set-up-git#platform-mac

после завершения установки с учетной записью Git hub (я также установил инструменты командной строки Git hub, но не уверен, что этот шаг требуется или нет), то я получил письмо -

[GitHub] в ваш аккаунт добавлен новый открытый ключ

и моя ошибка была исправлена.

Я получал ту же ошибку. Моя проблема заключалась в смешивании в судо.

Я не мог создать каталог, в который я клонировал автоматически, без префикса команды git clone с помощью sudo. Когда я это сделал, однако, мои ключи ssh, на которые неправильно ссылаются.

чтобы исправить это, я установил разрешения через chmod на родительский каталог, который я хотел содержать мой клон, чтобы я мог писать в него. Затем я запустил git clone без префикса sudo. Это тогда сработало! Я изменил разрешения вернулись после этого. Сделанный.

Я получал эту ошибку, потому что я сгенерировал ключи ssh с неправильной электронной почтой. Я смог подключиться с помощью ssh, но не с помощью git. Решение состояло в том, чтобы восстановить ключи, используя основной адрес электронной почты моей учетной записи github.

Это сработало для меня.

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

pbcopy

  • скопировать ключ в буфер обмена, вернитесь на веб-портале.
  • в поле ключ SSH вставьте ключ SSH.
  • в поле Имя введите имя ключа.
  • сохранить .

это сработало для меня

ssh -i [your id_rsa path] -T github@github.com

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

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

эта странная ошибка, в моем случае была симптомом gnome-keyring-daemon неверно называя ключ, для которого требуется пароль.

Я следую инструкциям, описанным здесь, и ввел пароль через терминал. Ошибка, ака смешивая интерфейс GUI, была разрешена. Смотрите: https://askubuntu.com/questions/3045/how-to-disable-gnome-keyring

в моем случае я переустановил ubuntu, и имя пользователя изменилось с предыдущего. В этом случае сгенерированный ssh-ключ также отличается от предыдущего.

проблема решена путем простого копирования текущего открытого ключа ssh в репозиторий. Ключ будет доступен в вашем пользовательском /home/.ssh/id_rsa.pub

В моем MAC я решил это с помощью:

cp ~/.ssh/github_rsa ~/.ssh/id_rsa

по какой-то причине мой git остановился, чтобы найти закрытый ключ в . Это произошло в конкретном РЕПО. Я имею в виду, что в других репозиториях git продолжал нормально работать.

Я думаю, что это ошибка.

я мог бы найти это поведение работает ssh -vT git@github.com

используйте ссылку ssh из Github, но не добавляйте ее с помощью ssh, просто используйте то, что вкладка ssh на Git hub дает вам для клонирования вашего РЕПО.

Я смог преодолеть эту проблему, выполнив следующие шаги в моей системе ubuntu. Как я экспериментировал с паролем ssh к системе.

sudo vi / etc / ssh / sshd_config

1) прокомментировал ниже : #Изменить на нет, чтобы отключить туннельные пароли открытого текста PasswordAuthentication #да PasswordAuthentication no - - - - > прокомментировал это.

2) затем перезапустить демон sshd, как показано ниже.

перезапуск службы sshd