How to fix - git@github.com permission denied (publickey). fatal could not read from remote repository and Support for password authentication was removed. Please use a personal access token instead
来源:https://jhooq.com/github-permission-denied-publickey/
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
the repo you get the following error message -Not only github but you can face this issue on the platform like GitLab, DigitalOcean, here I have composed the list of possible solutions -
- GitHub - How to fix git@github.com: Permission denied (public key)?
- GitLab - How to fix gitlab.com: permission denied (publickey) fatal: Could not read from remote repository
- BitBucket - Permission denied (public key), can't clone/clone to bitbucket
- Personal Access Token - How to fix(GitHub)-Support for password authentication was removed. Please use a personal access token instead
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
utility.Open the
and type in the following(Note - If you do not have ssh-keygen installed on the window then Click here.)
To keep the
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
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
After that it will ask for your
and , 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
directory?When you are working with multiple
repositories then there is high probability that you might have incorrect public key mentioned inside your directory.For example I have generated the public key for my GitLab project by the name
But when I checked my
file I noticed the incorrect name of public key for theHere is the content of my
file where the public key name is instead ofHow 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
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 Create SSH keys and add to your BitBucket account.
and in case you did not see your username then you need toStep 1 - Create your Public SSH Keys
Step 2 - Goto
Step 3 - Click on
Step 4 - Paste your key which you have generated in Step 1.
Step 5 - Finally click on
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
on Windows 10If you are working on a windows machine then you need to install the
.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
afterwords -- OpenSSH Client : Locate , then click .
- OpenSSH Server : Locate , then click .
Install OpenSSH using PowerShell on Windows 10
If you like using Powershell then first make sure
features are available to install -Copy and run the following command
After that install
features using the following command -1.2 Verify OpenSSH client is installed
- Goto settings panel
- 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 command prompt and open it in administrator mode. and for that goto window's
- In the command prompt type the following command
1.4 Where to find the key pair
The file will be generated at - C:\Users\rahulwagh.ssh\id_rsa
Name of the file - id_rsa
4. How to fix(GitHub)-Support for password authentication was removed. Please use a personal access token instead
GitHub has recently announced their migration to use token-based authentication which means you can no longer use your username and password for GtiHub authentication. You need to create personal access token to continue use of your GitHub Repository.
Here is my private GitHub repository which I was trying to clone and prompted with the error message -
Before fixing the issue lets try to understand how do you clone your Git Repo - https:// or git@github.com
This issue is very much dependent on the way you clone your repository.
1. git@github.com:rahulwagh/jhooq.git - If you are using SSH way of cloning the repository then you will not face issue related to personal access token. Because when you use SSH way of clonning then you should always create SSH Keys and copy public SSH key to GitHub SSH and GPG keys
2. https://github.com/rahulwagh/jhooq.git - If you are using HTTPS way of cloning the Git Repository then you will be prompted with username, password and after entering the username and password you will be thrown with error Support for password authentication was removed. Please use a personal access token instead
How to fix the personal access token for GitHub Repository
- Login to your GitHub account from the web browser.
- Goto -> Profile Pic -> Setting
- After that you should look on the left navigation panel and there should be an option of Developer Settings
- Aftr that it will redirect you to the new page where you will find an option Personal Access Token in the left navigation. You should click on it -
- Then next on the right side of the screen you have an option to Generate New Token -
- Enter the token name along with the scopes -
- Finally Generate Token
- Now Copy the generated Token
- Go back to terminal and re-issue the Git Clone command and instead of password input the access token
It should fix your issue of - "Support for password authentication was removed. Please use a personal access token instead"
Advantages of using Personal Access Token
- Strong - The Personal Access Token are randomly generated string which contains all possible combination of literal, number, upper case, lower case and special symbol. So it is really hard for brute force attack.
- Better Scoping - With personal access token you can control the access level at granular level.
- Multiple Personal Access Token - You can more then one personal access token so that you do not have to share password with anyone else.
- Revocable - You can easily revoke the access to repository by deleting the personal access token.
评论
发表评论