Кто-нибудь видел эту ошибку и знает, что делать?
Я использую терминал, я в корне, репозиторий GitHub существует, и я не знаю, что делать сейчас.
> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Ответы:
GitHub не может аутентифицировать вас. Итак, либо вы не настроили SSH-ключ, потому что вы его не установили на своем компьютере , либо ваш ключ не связан с вашей учетной записью GitHub.
Вы также можете использовать HTTPS URL вместо SSH / git URL, чтобы избежать необходимости иметь дело с ключами SSH. Это рекомендуемый метод GitHub .
Кроме того, GitHub имеет страницу справки специально для этого сообщения об ошибке и более подробно объясняет все, что вы могли проверить.
источник
ssh -vT git@github.com
на странице справки Github для отладки того, какой ключ использует ваш репозиторий. Я предлагаю вам добавить это в свой ответ.ssh -vT git@github.com
предоставляет много информации о том, почему это не работает.Вы создали файл конфигурации в вашем каталоге ~ / .ssh? У этого должно быть содержание как это:
Предполагая, что вы создали ключ ssh с именем github_rsa
и загрузил его на GitHub ...
ПРИМЕЧАНИЕ. Вы должны следовать этому способу явной настройки, если у вас есть более 1 ключа (2 и более) в каталоге ~ / .ssh /. Если вы не укажете ключ таким образом, то первый ключ по порядку берется и используется для аутентификации на github, поэтому он зависит от имени файла ключа.
источник
ssh -T git@github.com
отвечайте правильно, покаgit push -u origin master
выдает ту же ошибку, что и в вопросе. Почему я могу подключиться к нему правильно, но не могу нажать или извлечь из него?Я знаю об этой проблеме. После добавления ключа ssh добавьте ключ ssh в агент ssh (из официальных документов )
После того, как все работает нормально, git может просмотреть правильную клавишу, прежде чем не смог.
источник
ssh-agent -s
ssh-add ~/.ssh/github_rsa
Вам необходимо сгенерировать ключ SSH (если у вас его нет) и связать открытый ключ с вашей учетной записью Github. Смотрите документацию Github .
источник
Это случилось со мной. По какой-то причине мое происхождение испортилось без моего понимания:
Проверьте правильность настроек
URL-адрес должен быть примерно таким: ssh: //git@github.com/YourDirectory/YourProject.git; если вы не видите git@github.com, используйте
чтобы исправить это. Или вы можете использовать приложение github для проверки и установки URL-адреса основного удаленного репозитория на панели настроек вашего конкретного репозитория.
источник
Предполагая, что вы подключаете GitHub через SSH, вы можете запустить команду ниже, чтобы подтвердить это.
Если вы получили результат в следующем формате git@github.com: xxx / xxx.github.com.git, то вам следует сделать следующее.
Сгенерируйте ключ SSH (или используйте существующий). если он у вас есть, вам просто нужно добавить свой ключ в ssh-agent (шаг 2) и в свою учетную запись GitHub (шаг 3).
ниже для тех, у кого нет ключа SSH.
Шаг 1 Генерация пары открытых / закрытых ключей RSA.
Вам будет предложено подтвердить, где сохранить ключ SSH и какую фразу-пароль вы хотите использовать.
Шаг 2 Добавьте ваш ключ в ssh-agent
Убедитесь, что ssh-agent включен
$eval "$(ssh-agent -s)"
Добавьте ваш SSH-ключ в ssh-agent:
$ssh-add ~/.ssh/id_rsa
Шаг 3 Добавьте свой SSH-ключ к своей учетной записи
$sudo apt-get install xclip
$xclip -sel clip < ~/.ssh/id_rsa.pub
Затем добавьте скопированный ключ в GitHub
Зайдите в Настройки -> Ключи SSH (боковая панель личных настроек) -> Добавить ключ SSH -> заполните форму (ключ находится в вашем буфере обмена, просто используйте ctrl + v) -> Добавить ключ
После выполнения вышеуказанных шагов вы должны решить проблему с разрешениями.
Ссылка Ссылка: Генерация ключей SSH .
источник
cat ~/.ssh/id_rsa.pub
Сначала нам нужно проверить наличие ключей ssh на вашем компьютере. Откройте Терминал и запустите:
и это будет список файлов в вашем каталоге .ssh
И наконец, в зависимости от того, что вы видите (в моем случае было):
Просто попробуйте настроить RSA и, надеюсь, это решит ваши проблемы с git push origin
$ ssh-keygen -lf ~/.ssh/github_rsa.pub
ПРИМЕЧАНИЕ. Сертификаты RSA спарены с ключами, поэтому у вас будет частный и общедоступный сертификат, частный не будет доступен для вас, поскольку он принадлежит github (в данном случае), но общедоступный - тот, который может отсутствовать при возникновении этой ошибки (по крайней мере, так было в моем случае, моя учетная запись или репозиторий на github как-то испортилась, и мне пришлось «связать» открытый ключ, сгенерированный ранее)
источник
SHA
вывод в github из этой команды?Я получаю эту ошибку. Оказывается, я только что обновил OSX до Sierra, и мой старый ключ больше не был зарегистрирован.
Сначала я подумал, что «Обновление до macOS Sierra сломает ваши SSH-ключи и заблокирует вас на ваших собственных серверах»
Но я обошел это. Оказывается, мне просто нужно было перерегистрировать мой существующий ключ:
ssh-add -K
И введите кодовую фразу ... готово!
источник
Другое решение:
создайте ключи SSH, введите
ssh-keygen -t rsa -C "your_email@example.com"
. Это создаст файлы id_rsa и id_rsa.pub.Добавьте id_rsa в список ssh на локальном компьютере:
ssh-add ~/.ssh/id_rsa.
После генерации ключей получите pubkey, используя:
вы получите что-то вроде:
скопируйте этот ключ (значение) и перейдите на github.com и в настройках (ключ ssh и pgp) добавьте свой открытый ключ.
источник
Если вы не обращаетесь к своему собственному репозиторию или не выполняете клонирование внутри клонированного репозитория (используя некоторые команды «git submodule ...»):
В домашнем каталоге вашего хранилища:
1. Откройте «.gitmodules», и вы найдете что-то вроде этого:
Измените последнюю строку на HTTPS хранилища, которое вам нужно извлечь:
Сохраните «.gitmodules» и запустите команду для подмодулей, и «.git» будет обновлен.
2. Откройте «.git», перейдите в «config» файл, и вы найдете что-то вроде этого:
Измените последнюю строку на HTTPS хранилища, которое вам нужно извлечь:
Таким образом, в этом случае основная проблема заключается просто в URL. HTTPS любого репозитория теперь можно найти в верхней части страницы репозитория.
источник
это сработало для меня:
1- удалить все источники
(см. https://www.kernel.org/pub/software/scm/git/docs/git-remote.html. ).
* remote: «Управление набором репозиториев (« удаленных »), чьи ветви вы отслеживаете.
* rm: «Удалить имя удаленного. Все ветви удаленного отслеживания и параметры конфигурации для удаленного удаляются.»
2- проверить все было удалено:
3 - добавить новый мастер происхождения
это все люди!
источник
Убедись
ssh-add -l
отображается отпечаток ключа SSH, который присутствует в списке ключей SSH в вашей учетной записи Github.Если выходные данные пустые, но вы знаете, что у вас есть закрытый ключ SSH, который работает с вашей учетной записью Github, запустите
ssh-add
этот ключ (находится в~/.ssh
. Он названid_rsa
по умолчанию, так что вы, вероятно, запуститеssh-add id_rsa
).Иначе, следуйте этим инструкциям, чтобы сгенерировать пару ключей SSH.
источник
Я использовал GitHub ранее для одного из моих проектов PHP. При использовании github я использовал ssh вместо https. Я настроил свою машину таким образом, и каждый раз, когда коммит и нажимал код, он спрашивал мой пароль к ключу rsa.
Через несколько дней я перестал работать над проектом php и забыл свой пароль rsa. Недавно я начал работать над проектом Java и перешел на bitbucket. Поскольку я забыл пароль и восстановить его невозможно, я думаю, я решил использовать протокол https (рекомендуемый) для нового проекта и получил ту же ошибку, о которой говорилось в вопросе.
Как я это решил?
Запустил эту команду, чтобы сказать моему git использовать https вместо ssh:
Удалить любой пульт, если есть
Переделайте все от git init до git push и все работает!
PS: Я также деинсталлировал ssh со своего компьютера во время процесса отладки, думая, что его удаление решит проблему. Да, я знаю!! :)
источник
Проблема решена, если вы измените доступ SSH к https доступ к удаленному хранилищу:
источник
Я думаю, что у меня есть лучший ответ для вас, ваши git-приложения читают ваш id_rsa.pub в корневом пользовательском каталоге
Вот почему ваш ключ в /home/your_username/.ssh/id_rsa.pub не может быть прочитан git. Так что вам нужно создать ключ в /home/root/.ssh/
Затем скопируйте ключ в свой аккаунт на github. Это сработало для меня. Можешь попробовать.
источник
Если вы уже создали ключ SSH и по-прежнему получаете сообщение об ошибке, это связано с тем, что вам нужно дать пользователю разрешения на чтение и запись в папку, в которую вы клонируете. Для этого
sudo chmod 777 <your_folder_name_here>"
. Конечно, это после того, как вы сгенерировали ключ SSH и все еще получаете эту ошибку. Надеюсь, это поможет будущим пользователям.редактировать
Чтобы добавить это, используйте admin в Windows, если вы используете git bash
источник
sudo chown -R $USER:$USER <your_folder_name_here>
У меня недавно была такая же проблема. Это может помочь, если вам нужно немедленно исправить, но это нужно делать каждый раз, когда вы перезапускаете систему
Из терминала запустите:
ssh-add ~/.ssh/id_rsa
Введите системный пароль, и это должно работать.
источник
Я хотел бы добавить некоторые из моих выводов:
Если вы используете
GitBash
, то убедитесь, что ключ SSH хранится в~/.ssh/id_rsa
.По умолчанию
GitBash
ищет~/.ssh/id_rsa
путь по умолчанию для ключа SSH.Даже имя файла
id_rsa
имеет значение. Если вы сохраните свой SSH-ключ в другом имени файла или пути, он выдастPermission Denied(publickey)
ошибку.источник
Хорошо, есть несколько решений для этого, некоторые из них, возможно, уже упоминались, но просто чтобы сохранить их вместе:
убедитесь, что у вас есть ключи, по умолчанию другая папка ~ / .ssh /, т.е. id.rsa и id.rsa.pub
Убедитесь, что ключи имеют правильные разрешения, вы можете запустить chmod:
chmod 600 ~ / .ssh / id_rsa
chmod 644 ~ / .ssh / id_rsa.pub
убедитесь, что содержимое вашего открытого ключа (id_rsa.pub) совпадает с тем, которое загружено в конфигурацию удаленного репозитория
Наконец исправьте проблемы с агентом ssh : ssh-add
Немного больше информации: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html
источник
chmod
как вы описали. Спасибо.Если вы используете GitHub для Mac, проверьте настройки, чтобы убедиться, что вы вошли в систему.
источник
Я получал ту же ошибку во время «git push». В клиентской части у меня было два происхождения и мастер. Я удалил один, затем он работал нормально.
источник
Вы можете использовать URL Https для входа
Я предполагаю, что вы пытаетесь войти в систему с помощью ssh url, когда вы говорите, что git push запрашивает только пароль, учитывая, что вы подключаетесь через ssh.better, вы используете http url.
источник
Также в Ubuntu, хотя в настройках BitBucket уже был введен ключ SSH, я получил эту проблему. Причина была в том, что я пытался сделать следующее:
Не уверен, почему, но это было решено с помощью
Судо не используется.
источник
Для меня я попробовал это -
тогда я бегу
и для генерации ключа вы можете запустить
это сгенерирует пару ключей (открытый и закрытый).
Вы можете сохранить этот ключ в github для более подробной информации. Добавление нового ключа SSH в вашу учетную запись GitHub.
Я надеюсь, что это поможет другим :)
источник
У меня была похожая проблема с @Batman. Однако, поскольку я выполнял это в / usr / local / src / projectname, запуск без sudo не был вариантом.
Просто добавьте флаг -E, чтобы сохранить среду (ваш ~ / .ssh / путь).
$ sudo -E git clone git@your_repo
От человека Судо:
источник
Один из сценариев, когда это произойдет, - это когда вы будете следовать инструкциям GitHub после создания своего репозитория. Git проинструктирует вас, чтобы добавить ваш пульт с чем-то вроде этого.
git remote add origin git@github.com:<user>/<project>.git
Замените то, что в <>, значениями, относящимися к вашей учетной записи.
Решение состоит в том, чтобы удалить
.git
суффикс. Добавьте пульт следующим образом:git remote add origin git@github.com:<user>/<project>
источник
ТЛ; др
на
~/.ssh/config
местеСценарий Если вы используете версию openSSH> 7, как, скажем, на сенсорной панели MacBook Pro, это
ssh -V
OpenSSH_7.4p1, LibreSSL 2.5.0
У вас также был старый Mac, на котором изначально вы поместили ключ на Github, возможно, он использует ключ id_dsa. OpenSSH v7 по умолчанию не включает использование этих ключей DSA (которые включают это
ssh-dss
), но вы все равно можете добавить его обратно, вставив следующий код в ваш~/.ssh/config
Источник, который работал для меня, это бюллетень Gentoo
Теперь вы можете по крайней мере использовать GitHub, а затем зафиксировать свои ключи в RSA.
источник
Я нашел эту страницу при поиске решения аналогичного сообщения об ошибке
git pull
на удаленном хосте:Я был подключен с моей локальной машины к удаленному хосту через
ssh -AY remote_hostname
. Это не решение вопроса OP, но полезно для других, кто сталкивался с этой страницей, поэтому разместите ее здесь.Обратите внимание, что в моем случае он
git pull
отлично работает на моем локальном компьютере (то есть ключ ssh был настроен, добавлен в учетную запись GitHub и т. Д.). Я решил свою проблему, добавив это~/.ssh/config
на моем ноутбуке:Затем я снова подключился к удаленному хосту
ssh -AY remote_hostname
иgit pull
теперь работал. Изменение в конфигурации позволяет пересылать мою пару ключей ssh с моего локального компьютера на любой хост.-A
Вариантssh
фактически передает его в том , что SSH сессии. Подробнее смотрите здесь.источник
Может быть, ваш ssh-агент не включен Вы можете попробовать
http://git-scm.com/
Установить его
Включить ssh-agent
C: \ Program Files \ Git \ cmd
запуск SSH-агент
источник
Перейдите на панель управления учетной записью GitHub, найдите репозиторий проекта, нажмите вкладку « Настройки » - в разделе « Развертывание ключей» вам нужно будет добавить свой ключ SSH. Откройте терминал и введите:
Это скопирует ключ из вашего файла id_rsa.pub. Так что просто вернитесь на панель инструментов GitHub, вставьте ее, нажмите Add Key и все.
То же решение применяется к учетным записям Bitbucket.
источник