- How to fix — git@github.com permission denied (publickey). fatal could not read from remote repository
- 1. GitHUb — How to fix this issue?
- Step 1 — Create SSH key pair
- Step 2 — Adding SSH key to your GitHub account
- Approach 2 : Using GitHub HTTPS urls
- 2. GitLab: How to fix gitlab.com: permission denied (publickey) fatal: Could not read from remote repository
- 2.1 Multiple public keys inside
- 3. Bitbucket — Permission denied (public key), can’t clone/clone to bitbucket
- 3.1 You did not add your local SSH keys to BitBucket Settings
- 3.2 Permission on your bitbucket directory
- Install OpenSSH using PowerShell on Windows 10
- Git-разрешение отказано (publickey)
- 30 ответов
How to fix — git@github.com permission denied (publickey). fatal could not read from remote repository
git@github.com: Permission denied (public key).fatal: Could not read from remote repository. — It means GitHub is rejecting your connection because —
- It is your private repo
- GitHub does not trust your computer because it does not have the public key of your computer.
And when you try to clone the repo you get the following error message —
1. GitHUb — How to fix this issue?
Step 1 — Create SSH key pair
One of the easiest ways for you to generate a key pair is by running ssh-keygen utility.
Open the command prompt and type in the following
(Note — If you do not have ssh-keygen installed on the window then Click here.)
To keep the ssh-keygen simple, do not enter any key name or passphrase.
Where to find the key pair
The file will be generated at — /Users/rahulwagh/.ssh/
Name of the file — id_rsa.pub
(To generate SSH keys on Windows machine click here)
Step 2 — Adding SSH key to your GitHub account
- Goto your GitHub Account -> Settings
- Then look for SSH and GPG keys under **Account Settings -> SSH and GPG keys **
- After that click on New SSH Key. Assign some meaningful name to your key
- To get the key goto to your command prompt and switch directory path
Windows — C:\Users\rahulwagh.ssh\id_rsa.pub
Linux — /Users/rahulwagh/.ssh/id_rsa.pub
Run the following command
Copy the content of the key
Paste the key inside your GitHub account
Now you can clone your GitHub repo and it will not complain about git@github.com permission denied (publickey). fatal could not read from remote repository
Benefits of this approach
- You do not need to supply you GitHub Username and password
- More secured
Drawback
- The process of generating SSH keys is little troublesome.
- If you switch your laptop/desktop then you need re-generate the SSH keys again and perform the same steps onto your new laptop/desktop.
Approach 2 : Using GitHub HTTPS urls
This is one more approach in which you do not need to worry about SSH key generation.
You need following —
- GitHub repo URL with HTTPS (Ex — https://github.com/rahulwagh/example.git)
- Your GitHub Username
- Your GitHub Password
Run the following command to set git remote
After that it will ask for your username and password , supply your username and password.
Once you are authenticated then you can perform your Git operations.
Benefits of this approach
- You do not need to generate SSH keys
- You do not need to copy your SSH keys to GitHub accounts
- This approach can be used from any Laptop, Desktop. You only need to provide your GitHub credentials with this approach.
Drawback
- The only drawback which I can see is you need to input your GitHub credentials everytime.
2. GitLab: How to fix gitlab.com: permission denied (publickey) fatal: Could not read from remote repository
2.1 Multiple public keys inside
When you are working with multiple github repositories then there is high probability that you might have incorrect public key mentioned inside your
For example I have generated the public key for my GitLab project by the name
But when I checked my
/.ssh/config file I noticed the incorrect name of public key for the gitlab.com
Here is the content of my
/.ssh/config file where the public key name is
/.ssh/id_rsa instead of
How to fix?
To fix this issue you should correct the public key name —
3. Bitbucket — Permission denied (public key), can’t clone/clone to bitbucket
There could be multiple reasons behind the issue —
3.1 You did not add your local SSH keys to BitBucket Settings
SSH keys could be one of the most probable reasons which are causing the issue while working with your BitBucket repository.
You might see the following errors —
or (In case you are working with mercury then you might see this error message)
How to fix?
Before we start debugging the issue, let’s first debug the issue to know the exact reason behind this error.
Run the following command from your terminal (put your correct repository name) —
The above command should return you with Username and in case you did not see your username then you need to Create SSH keys and add to your BitBucket account.
Step 2 — Goto Your Account -> Manage Account -> SSH Keys
Step 3 — Click on Add Key
Step 4 — Paste your key which you have generated in Step 1.
Step 5 — Finally click on Add Key
It should work after adding the SSH keys to your BitBucket account.
(Note — Here are some official links from bitbucket if you are interested more — click here)
3.2 Permission on your bitbucket directory
There could also be a possibility that you do not have permission to access the BitBucket repository. Check with your bitbucket administrator with regards to your permission.
If it is the case of permission then your bitbucket administrator could grant the permission.
1.1 Generate ssh-keygen on Windows 10
If you are working on a windows machine then you need to install the OpenSSH .
Goto: Apps > Apps and Features > Manage Optional Features
Verify the list of the apps, if it already installed. If not then go at the top of the page then select Add a Feature afterwords —
- OpenSSH Client : Locate OpenSSH Client , then click Install .
- OpenSSH Server : Locate OpenSSH Server , then click Install .
Install OpenSSH using PowerShell on Windows 10
If you like using Powershell then first make sure OpenSSH features are available to install —
Copy and run the following command
After that install server and client features using the following command —
1.2 Verify OpenSSH client is installed
- Click on Optional Features and then look for OpenSSH client, if you can find the OpenSSH client which means you have installed it correctly.
1.3 Generate ssh keys on windows 10
- Next we need to run the ssh-keygen and for that goto window’s command prompt and open it in administrator mode.
- In the command prompt type the following command
Источник
Git-разрешение отказано (publickey)
Я на Mac Snow Leopard, и я только что установил git .
Я только что пытался
но это дает мне эту ошибку:
что я упустил?
Я также пробовал делать ssh-keygen без passphase, но все та же ошибка.
30 ответов
эта информация работает на theChaw, но может быть применена ко всем другим репозиториям git, которые поддерживают аутентификацию SSH pubkey. (См.gitolite’у, gitlab или github, например.)
сначала начните с настройки собственного набора пар открытый/закрытый ключ. Этот можно использовать DSA или RSA, поэтому в основном любой ключ, который вы настраиваете, будет работать. В большинстве систем вы можете использовать ssh-keygen.
- сначала вы захотите cd в свой .каталог СШ. Вскрывать терминал и выполните:
вот это вы должны быть хороши для клонирования и проверки.
более подробную информацию можно найти на 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.
- Открыть Терминал.
- Enter ls -al
/.ssh чтобы увидеть, присутствуют ли существующие ключи SSH:
Проверьте каталог, чтобы увидеть, если у вас уже есть ключ SSH.По умолчанию являются одним из после d_dsa.паб,id_ecdsa.pub, id_ed25519.pub, 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-agent
- терминалов типа eval «$(ssh-agent -s)»
- добавьте ключ SSH в ssh-агент. Если вы используете существующий SSH ключ, а не создавать новый ключ SSH, вам нужно будет заменить id_rsa в команде с именем существующего закрытого ключа файл. Введите эту команду $ ssh-add -K
теперь скопируйте ключ SSH, а также добавьте его в учетную запись github
- в терминале введите эту команду с именем файла ssh pbcopy это скопирует файл в буфер обмена Теперь откройте учетную запись github перейдите в настройки > ключи SSH и GPG > новый ключ SSH введите название и вставьте ключ из буфер обмена и сохранить его. Вуаля все готово.
в Windows убедитесь, что все ваши приложения согласны с HOME. Msys удивительно не сделает это за вас. Мне пришлось установить переменную среды, потому что ssh и git не могли договориться о том, где мой .каталог СШ был.
в основных инструкциях GIT не было ссылки на материал ключа SSH. Следуя некоторым ссылкам выше, я нашел страницу справки git, которая объясняет, шаг за шагом, как это сделать для различных операционных систем (ссылка обнаружит вашу ОС и перенаправит, соответственно):
Он проходит через все необходимое для GITHub, а также дает подробные объяснения, такие как » зачем добавлять парольную фразу, когда создание ключа RSA.- Я решил, что отправлю его, на случай, если это поможет кому-то еще.
ты корпоративная среда? Возможно ли, что ваши системные переменные недавно изменились? Пер этой Итак, ответьте, ssh-ключи живут в %HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub . Так что если %HOMEDRIVE% недавно измененный, git не знает, где искать ваш ключ, и, следовательно, все вещи аутентификации.
попробуй ssh -vT git@github.com . Обратите внимание, где — это. Для меня это означало указывать!—13—>не мой \Users\MyLogin а в сети привод, из-за изменения переменных среды, выталкиваемых на сетевом уровне.
решение? С моего нового %HOMEDRIVE% имеет те же разрешения, что и мои локальные файлы, я только что переместил свой .папка ssh там, и назвал это днем.
один из самых простых способов
перейти к терминалу —
Ребята, вот как это сработало для меня:
1-откройте терминал и перейдите к пользователю [см. прикрепленное изображение]
2 — открытые .ssh и убедитесь, что у него нет такого файла, как id_rsa или id_rsa.pub в противном случае иногда он не будет правильно переписывать файлы
3-git —version [Проверьте установку и версию git]
4 — git config —глобальный пользователь.email «ваш email id»
5 — git config —глобальный пользователь.имя»Твое имя»
6-git config —list [убедитесь, что вы установили свое имя и адрес электронной почты]
8-ssh-keygen, он запрашивает сохранение файла, позвольте ему
/.ssh / id_rsa.pub [доступ к открытому ключу и скопируйте ключ в настройки gerrit]
Примечание: вы не должны использовать команду sudo с Git. Если у вас есть очень веская причина, вы должны использовать sudo, а затем убедитесь, что вы используете его с каждой командой (вероятно, просто лучше использовать su, чтобы получить размер на тот момент). Если вы создаете SSH-ключи без sudo, а затем пытаетесь использовать команду sudo git push, вы не будете использовать те же ключи, которые вы создали
Источник