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 ответов:
эта информация работает на 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 всего минуту назад.
Если вы этого не сделаете, добавьте один, а затем попробовать еще раз.
у меня была небольшая другая ситуация, я вошел в систему на удаленном сервере и использовал 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.
- Открыть Терминал.
- введите
ls -al ~/.ssh
чтобы увидеть, если существующие ключи SSH присутствуют:Проверьте каталог, чтобы увидеть, если у вас уже есть ключ SSH.По умолчанию являются одним из после d_dsa.паб,id_ecdsa.паб,id_ed25519.паб,id_rsa.паб
если вы не нашли, то перейдите к Шагу 2 в противном случае следуйте шагу 3
Шаг 2: создание открытого ключа SSH
- Открыть Терминал.
- введите команду followong с действительным адресом электронной почты, который вы используете для github
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- вы увидите следующее в терминале
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 еще раз. В командной строке введите безопасный пароль.Enter passphrase (empty for no passphrase): [Type a passphrase]
нажмите enter, если вы не хотитеEnter same passphrase again: [Type passphrase again]
нажмите enter еще разэто будет генерировать
id_rsa.pub
Шаг 3: Добавление SSH-ключа к ssh-агенту
- терминалов типа
eval "$(ssh-agent -s)"
- добавьте свой SSH-ключ к ssh-агенту. Если вы используете существующий SSH ключ, а не создавать новый SSH ключ, вам нужно будет заменить id_rsa в команде с именем существующего закрытого ключа файл. Введите эту команду
$ ssh-add -K ~/.ssh/id_rsa
теперь скопируйте ключ SSH, а также добавьте его в учетную запись github
- в терминале введите эту команду с именем вашего 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 там, и назвал ее днем.
Ребята вот как это работало для меня:
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, вы не будете использовать те же ключи, которые вы создали
в дополнение к ответу Руфина, ярлык для копирования вашего ssh-ключа в буфер обмена в Windows - это:
type id_rsa.pub | clip
ссылки:
Я только что испытал эту проблему при настройке моего текущего проекта, и ни одно из вышеперечисленных решений не работает. поэтому я попытался посмотреть, что на самом деле происходит в списке отладки, используя команду ssh -vT git@github.com. я заметил, что имя моего закрытого ключа отсутствует в списке. поэтому переименование имени файла закрытого ключа в "id_rsa" делает эту работу. надеюсь, это поможет.
его довольно прямо вперед. Введите следующую команду
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.
- в поле Имя введите имя ключа.
- сохранить .
самое простое решение для этого, когда вы пытаетесь нажать на репозиторий с другим именем пользователя:
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