permission denied git что делать
Почему получаю при работе с git на windows Permission denied (publickey)?
Всем привет.
Не могу работать с гитом по ssh, сгенерил ключ, добавил его на github, сделал ssh-add.
И всё равно получаю:
Получаю такое и при использовании CMD, PowerShell, Git Bash.
Гит установлен, система windows, последнее обновление x64, OpenSSH agent в службах запущен.
/.ssh/config с таким содержимым
> сгенерил ключ
чем, как?
> сделал ssh-add
какой командой? в какой оболочке?
> Получаю такое и при использовании CMD, PowerShell, Git Bash.
получаете в ответ на какую команду?
Но после этого ssh-add всё равно не работает.
/.ssh теперь есть закрытый ключ id_rsa и открытый ключ id_rsa.pub. проверьте, так ли это.
> добавил его на github
в гитхаб вы добавляли открытый ключ
Permission denied error on Github Push
Recently, I’m added as a member/contributor for Github project. I have cloned that project on local machine.
I have made some changes and committed locally and now trying to Push changes to original repo but when I try to Push,I get some permission error?
Am I lacking some permission for pushing changes so I could ask the original author of project?
8 Answers 8
Under Generic Credentials there are some credentials related to Github, Click on them and click «Remove«.
and when you try to push something, you need to login again. hope this will be helpful for you
In could able to resolve this issue with giving username and password in below url.
Please replace username and password with your Github credentials:
For some reason my push and pull origin was changed to HTTPS-url in stead of SSH-url (probably a copy-paste error on my end), but trying to push would give me the following error after trying to login:
Updating the remote origin with the SSH url, solved the problem:
See the github help on cloning URL. With HTTPS, if you are not authorized to push, you would basically have a read-only access. So yes, you need to ask the author to give you permission.
If the author doesn’t give you permission, you can always fork (clone) his repository and work on your own. Once you made a nice and tested feature, you can then send a pull request to the original author.
Another way to get this error, is if you have duplicate or conflicting
/.ssh/* entries. First check what is on your ssh key-chain with:
As you can see there are two emails which are the same, and easy for you to get confused. Then check your config file:
To resolve, manually remove (after copying) the (default) files:
Now copy back the one you want to use, for example Host github :
Error: Permission denied (publickey)
In this article
A «Permission denied» error means that the server rejected your connection. There could be several reasons why, and the most common examples are explained below.
Should the sudo command be used with Git?
Check that you are connecting to the correct server
Typing is hard, we all know it. Pay attention to what you type; you won’t be able to connect to «githib.com» or «guthub.com». In some cases, a corporate network may cause issues resolving the DNS record as well.
To make sure you are connecting to the right domain, you can enter the following command:
The connection should be made on port 22, unless you’re overriding settings to use SSH over HTTPS.
Always use the «git» user
All connections, including those for remote URLs, must be made as the «git» user. If you try to connect with your GitHub username, it will fail:
If your connection failed and you’re using a remote URL with your GitHub username, you can change the remote URL to use the «git» user.
You should verify your connection by typing:
Make sure you have a key that is being used
If you have GitHub Desktop installed, you can use it to clone repositories and not deal with SSH keys.
If you are using Git Bash, turn on ssh-agent:
If you are using another terminal prompt, such as Git for Windows, turn on ssh-agent:
Verify that you have a private key generated and loaded into SSH.
The ssh-add command should print out a long string of numbers and letters. If it does not print anything, you will need to generate a new SSH key and associate it with GitHub.
Tip: On most systems the default private keys (
/.ssh/identity ) are automatically added to the SSH authentication agent. You shouldn’t need to run ssh-add path/to/key unless you override the file name when you generate a key.
Getting more details
You can also check that the key is being used by trying to connect to git@github.com :
In that example, we did not have any keys for SSH to use. The «-1» at the end of the «identity file» lines means SSH couldn’t find a file to use. Later on, the «Trying private key» lines also indicate that no file was found. If a file existed, those lines would be «1» and «Offering public key», respectively:
Verify the public key is attached to your account
You must provide your public key to GitHub to establish a secure connection.
Start SSH agent in the background.
Find and take a note of your public key fingerprint.
In the upper-right corner of any page, click your profile photo, then click Settings.
In the user settings sidebar, click SSH and GPG keys.
Compare the list of SSH keys with the output from the ssh-add command.
Open the command line.
Start SSH agent in the background.
Find and take a note of your public key fingerprint.
In the upper-right corner of any page, click your profile photo, then click Settings.
In the user settings sidebar, click SSH and GPG keys.
Compare the list of SSH keys with the output from the ssh-add command.
Start SSH agent in the background.
Find and take a note of your public key fingerprint. If you’re using OpenSSH 6.7 or older:
If you’re using OpenSSH 6.8 or newer:
In the upper-right corner of any page, click your profile photo, then click Settings.
In the user settings sidebar, click SSH and GPG keys.
Compare the list of SSH keys with the output from the ssh-add command.
If you don’t see your public key in GitHub, you’ll need to add your SSH key to GitHub to associate it with your computer.
Warning: If you see an SSH key you’re not familiar with on GitHub, delete it immediately and contact GitHub Support, for further help. An unidentified public key may indicate a possible security concern. For more information, see «Reviewing your SSH keys.»
Help us make these docs great!
All GitHub docs are open source. See something that’s wrong or unclear? Submit a pull request.
Git-разрешение отказано (publickey)
Я только что пытался
но это дает мне эту ошибку:
что я упустил?
Я также пробовал делать ssh-keygen без passphase, но все та же ошибка.
30 ответов
эта информация работает на theChaw, но может быть применена ко всем другим репозиториям git, которые поддерживают аутентификацию SSH pubkey. (См.gitolite’у, gitlab или github, например.)
сначала начните с настройки собственного набора пар открытый/закрытый ключ. Этот можно использовать DSA или RSA, поэтому в основном любой ключ, который вы настраиваете, будет работать. В большинстве систем вы можете использовать ssh-keygen.
вот это вы должны быть хороши для клонирования и проверки.
более подробную информацию можно найти на https://help.github.com/articles/generating-ssh-keys (спасибо @Lee Whitney)
более обширное устранение неполадок и даже автоматическая фиксация могут быть сделаны с:
эта ошибка может произойти при доступе к URL-адресу SSH (чтение/запись) вместо URL-адреса только для чтения Git, но у вас нет доступа на запись к этому РЕПО.
иногда вы просто хотите клонировать свое собственное РЕПО, например, развернуть на сервере. В этом случае вам действительно нужен только доступ только для чтения. Но так как это свой repo, GitHub может отображать URL SSH, если это ваше предпочтение. В этом случае, если открытый ключ удаленного хоста не находится в Ключах GitHub SSH, ваш доступ будет быть отвергнутым,, который, как ожидается, произойдет.
эквивалентный случай, когда вы пытаетесь клонировать чужое РЕПО, к которому у вас нет доступа для записи с SSH URL.
одним словом, если вы намерены клонировать только РЕПО, используйте HTTPS URL ( https://github.com/
Update: GitHub теперь отображает HTTPS как протокол по умолчанию, и этот шаг, вероятно, может уменьшить возможно неправильное использование URL-адресов SSH.
помощь github ссылке помог мне разобраться с этой проблемой. Похоже, ключ ssh не был добавлен в ssh-агент. Вот что я в итоге сделал.
убедитесь, что ssh-agent включен. Команда запускает ssh-агент в фоновом режиме:
добавьте ключ SSH в ssh-agent:
обратите внимание, что (по крайней мере для некоторых проектов) у вас должна быть учетная запись github с ключом ssh.
посмотрите на ключи, перечисленные в вашем агенте аутентификации (ssh-add-l)
(если вы их не видите, добавьте один из существующих Ключей с помощью ssh-add /path/to/your / key (например:ssh-add
чтобы убедиться, что у вас есть ключ, связанный с вашей учетной записи на GitHub:
вы должны увидеть хотя бы один ключ с хэш-ключом, соответствующий одному из хэшей, которые вы видели при вводе ssh-add-l минуту назад.
Если вы этого не сделаете, добавьте один, а затем попробовать еще раз.
это работает для меня:
у меня была небольшая другая ситуация, я вошел в систему на удаленный сервер и использовал git на сервере, когда я запускал любую команду git, я получил то же самое сообщение
то, как я исправил это, изменив файл /etc/ssh_config на моем Mac. от
получил тот же отчет об ошибке.
исправлено использование HTTP вместо этого. Поскольку я не хочу устанавливать «SSH-ключи» для тестового ПК.
изменить URL на HTTP при клонировании:
моя проблема немного отличается: у меня установлен URL-адрес при добавлении существующего локального РЕПО в remote, используя:
чтобы исправить это, сбросьте URL на HTTP:
кстати, вы можете проверить свой URL с помощью команды:
надеюсь, что это поможет такому, как я. : D
Я встретил тот же вопрос, потому что я думал, что разница между SSH и HTTPS is
поэтому я изменил с HTTPS to SSH просто изменив https:// to ssh:// ничего в конце url не было изменено.
что означает, что я изменил ssh://github.com/USERNAME/REPOSITORY.git to git@github.com:USERNAME/REPOSITORY.git это работает.
глупая ошибка, но надежда помогает кому-то!
я боролся с той же проблемой, что и я, и я смог клонировать РЕПО. Я следовал этой процедуре для iMac.
первый шаг: проверка, если у нас уже есть открытый ключ SSH.
/.ssh чтобы увидеть, присутствуют ли существующие ключи SSH:
Проверьте каталог, чтобы увидеть, если у вас уже есть ключ SSH.По умолчанию являются одним из после d_dsa.паб,id_ecdsa.pub, id_ed25519.pub, id_rsa.паб
если вы не нашли, перейдите к Шагу 2, иначе выполните шаг 3
Шаг 2: создание открытого ключа SSH
это будет генерировать id_rsa.pub
Шаг 3: Добавление SSH-ключа в ssh-agent
теперь скопируйте ключ SSH, а также добавьте его в учетную запись github
в основных инструкциях GIT не было ссылки на материал ключа SSH. Следуя некоторым ссылкам выше, я нашел страницу справки git, которая объясняет, шаг за шагом, как это сделать для различных операционных систем (ссылка обнаружит вашу ОС и перенаправит, соответственно):
Он проходит через все необходимое для GITHub, а также дает подробные объяснения, такие как » зачем добавлять парольную фразу, когда создание ключа RSA.- Я решил, что отправлю его, на случай, если это поможет кому-то еще.
один из самых простых способов
Ребята, вот как это сработало для меня:
1-откройте терминал и перейдите к пользователю [см. прикрепленное изображение]
8-ssh-keygen, он запрашивает сохранение файла, позвольте ему
/.ssh / id_rsa.pub [доступ к открытому ключу и скопируйте ключ в настройки gerrit]
Примечание: вы не должны использовать команду sudo с Git. Если у вас есть очень веская причина, вы должны использовать sudo, а затем убедитесь, что вы используете его с каждой командой (вероятно, просто лучше использовать su, чтобы получить размер на тот момент). Если вы создаете SSH-ключи без sudo, а затем пытаетесь использовать команду sudo git push, вы не будете использовать те же ключи, которые вы создали
Как устранить ошибку Permission denied (publickey) при использовании Git?
Я только что попробовал
но это дает мне эту ошибку:
Что мне не хватает?
Я также попытался сделать ssh-keygen без пас-фазы, но все еще та же ошибка.
Если пользователь не создал пару открытых / закрытых ключей ssh, заданную ранее
Сначала начните с настройки собственного набора пар открытый / закрытый ключ. Это может использовать либо DSA, либо RSA, поэтому в принципе любой ключ, который вы настроите, будет работать. На большинстве систем вы можете использовать ssh-keygen.
Вот и все, вы должны хорошо клонировать и оформить заказ.
Если пользователь сгенерировал пару открытых / закрытых ключей ssh, заданную ранее
Более обширное устранение неполадок и даже автоматическое исправление могут быть сделаны с:
Эта ошибка может возникать, когда вы обращаетесь к URL-адресу SSH (чтение / запись) вместо URL-адреса Git только для чтения, но у вас нет прав на запись в этот репозиторий.
Одним словом, если вы хотите клонировать репо, используйте HTTPS URL ( https://github.com/
Обновление: GitHub отображает HTTPS в качестве протокола по умолчанию, и этот шаг, вероятно, может уменьшить возможное неправильное использование URL-адресов SSH.
Ссылка справки github помогла мне разобраться с этой проблемой. Похоже, ключ ssh не был добавлен в ssh-agent. Это то, что я в итоге сделал.
Убедитесь, что ssh-agent включен. Команда запускает ssh-agent в фоновом режиме:
Добавьте ваш SSH-ключ в ssh-agent:
Получил тот же отчет об ошибке.
Исправлено использование HTTP вместо. Так как я не хочу устанавливать «ключи SSH» для тестового ПК.
Измените URL на HTTP при клонировании:
Моя проблема немного другая : у меня установлен URL при добавлении существующего локального репо в удаленный, используя:
Чтобы исправить это, сбросьте URL на HTTP:
Кстати, вы можете проверить свой URL с помощью команды:
Надеюсь, это поможет кому-то вроде меня. : D
Это работает для меня:
Чтобы убедиться, что у вас есть ключ, связанный с вашей учетной записью GitHub :
Если нет, добавьте один, затем попробуйте снова.
Первый шаг: проверка, есть ли у нас открытый ключ SSH.
/.ssh чтобы увидеть, есть ли существующие ключи SSH:
Проверьте список каталогов, чтобы узнать, есть ли у вас открытый ключ SSH. Общедоступными по умолчанию являются один из следующих d_dsa.pub, id_ecdsa.pub, id_ed25519.pub, id_rsa.pub
Если вы не нашли, перейдите к шагу 2, в противном случае выполните шаг 3
Шаг 2: Генерация открытого ключа SSH
Это сгенерирует id_rsa.pub
Шаг 3: Добавление вашего SSH-ключа в ssh-agent
Теперь скопируйте ключ SSH и добавьте его в свою учетную запись github.