GitHub isn't able lớn authenticate you. So, either you aren't setup with an SSH key, because you haven't phối one up on your machine, or your key isn't associated with your GitHub tài khoản.
You can also use the HTTPS URL instead of the SSH/git URL lớn avoid having lớn giảm giá with SSH keys. This is GitHub's recommended method.
Further, GitHub has a help page specifically for that error message, and explains in more detail everything you could kiểm tra.
To solve it:
You should have a public key in your home page directory, thus print the nội dung of your public key, in Linux distro run rẩy for example
cat ~/.ssh/id_rsa.pub
(if the prior doesn't work, kiểm tra the keys inside~/.ssh/
with.pub
extension)Add the nội dung of such a public key lớn your Github account: click your profile photo ->
Settings
->SSH and GPG keys
->New SSH key or Add SSH key
answered Oct 17, 2012 at 18:15
bdukesbdukes
156k25 gold badges150 silver badges176 bronze badges
17
I know about this problem. After add ssh key, add you ssh key lớn ssh agent too (from official docs
eval `ssh-agent -s`
ssh-add ~/.ssh/id_rsa
After it all work fine, git can view proper key, before couldn't.
You should replace id_rsa
with your key.
Example:
ssh-add ~/.ssh/id_rsa
=> ssh-add ~/.ssh/id_ed25511.pub
answered Jun 12, năm ngoái at 14:51
VelikiiNehochuhaVelikiiNehochuha
4,3432 gold badges17 silver badges33 bronze badges
18
Did you create a config tệp tin in your ~/.ssh directory? It should have contents lượt thích these:
Host github.com
IdentityFile ~/.ssh/github_rsa
Assuming that you created an ssh key named github_rsa
and uploaded it lớn GitHub...
NOTE: You must follow this way of explicit configuration if you have more than vãn 1 key (2 and more) in your ~/.ssh/ directory. If you don't specify key this way, then first key in order is taken and used for github authentication, sánh it depends on the key tệp tin name then.
answered Feb 21, năm trước at 15:43
IgorGanapolskyIgorGanapolsky
26.8k23 gold badges119 silver badges150 bronze badges
9
You need lớn generate an SSH key (if you don't have one) and associate the public key with your Github tài khoản. See Github's own documentation.
answered Oct 17, 2012 at 18:13
cdhowiecdhowie
168k25 gold badges298 silver badges318 bronze badges
4
This happened lớn u. For some reason my origin got messed up without my realizing it:
Check if your settings are still correct
git remote -v
the url needs lớn be something lượt thích ssh://[email protected]/YourDirectory/YourProject.git; if you don't see [email protected], use
git remote set-url origin git://github.com/YourDirectory/YourProject.git
to phối it right. Or you could use the github phầm mềm lớn kiểm tra and phối the Primary Remote Repository url in the settings panel of your particular repository.
answered May 23, 2013 at 3:30
rmundormundo
8386 silver badges4 bronze badges
2
Issue solved if you change the ssh access lớn https access lớn the remote repository:
git remote set-url origin https_link_to_repository
git push -u origin master
answered Nov 13, 2018 at 9:12
george manogeorge mano
6,1587 gold badges35 silver badges44 bronze badges
1
Assuming you are connecting GitHub over SSH, you can run rẩy below command lớn confirm this.
$git config --get remote.origin.url
If you get a result has following format [email protected]:xxx/xxx.github.com.git, then you should bởi the following.
Generate a SSH key(or use existing one). if you had one, you just need lớn add your key lớn the ssh-agent (step 2)and lớn your GitHub account(step 3).
below are for those who don't have SSH key.
Step 1 Generating public/private rsa key pair.
$ssh-keygen -t rsa -b 4096 -C "[email protected]"
You'll be asked lớn confirm where lớn save the SSH key and what passphrase you want lớn use.
Step 2 Add your key lớn the ssh-agent
Ensure ssh-agent is enabled
$eval "$(ssh-agent -s)"
Add your SSH key lớn the ssh-agent:
$ssh-add ~/.ssh/id_rsa
Step 3 Add your SSH key lớn your account
$sudo apt-get install xclip
$xclip -sel clip < ~/.ssh/id_rsa.pub
Then add the copied key lớn GitHub
Go lớn Settings->SSH keys(Personal settings side bar)->Add SSH key->fill out form(key is on your clipboard, just use ctrl+v)->Add key
After going through above steps, you should solve the permission problem.
Reference Link: Generating SSH keys.
answered Jan 3, năm 2016 at 14:34
xinerdxinerd
5114 silver badges7 bronze badges
2
Another solution :
create the SSH keys, type ssh-keygen -t rsa -C "[email protected]"
. This will create both id_rsa and id_rsa.pub files.
Add the id_rsa lớn ssh list on local computer: ssh-add ~/.ssh/id_rsa.
After generating the keys get the pubkey using :
cat ~/.ssh/id_rsa.pub
you will get something lượt thích :
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAACAQCvMzmFEUPvaA1AFEBH6zGIF3N6pVE2SJv9V1MHgEwk4C7xovdk7Lr4LDoqEcqxgeJftwWQWWVrWWf7q9qCdHTAanH2Q5vx5nZjLB+B7saksehVOPWDR/MOSpVcr5bwIjf8dc8u5S8h24uBlguGkX+4lFJ+zwhiuwJlhykMvs5py1gD2hy+hvOs1Y17JPWhVVesGV3tlmtbfVolEiv9KShgkk3Hq56fyl+QmPzX1jya4TIC3k55FTzwRWBd+IpblbrGlrIBS6hvpHQpgUs47nSHLEHTn0Xmn6Q== [email protected]
copy this key (value) and go lớn github.com and under the setting (ssh and pgp key) add your public key.
answered Aug 21, 2017 at 10:09
Badr BellajBadr Bellaj
12.7k3 gold badges45 silver badges47 bronze badges
First, we need lớn kiểm tra for existing ssh keys on your computer. Open up Terminal and run:
ls -al ~/.ssh
#or
cd ~/.ssh
ls
and that will lists the files in your .ssh directory
And finally depending on what you see (in my case was):
github_rsa github_rsa.pub known_hosts
Just try setting up your RSA and hopefully that will solve your "git push origin" issues
$ ssh-keygen -lf ~/.ssh/github_rsa.pub
NOTE: RSA certificates are keys-paired sánh you will have a private and a public certificate, private will not be accessible for you since it belongs lớn github (in this case) but the public is the one you might be missing when this error happens (at least that was my case, my github tài khoản or repo got messed up somehow and i had lớn "link" the public key, previously generated)
answered Aug 1, 2013 at 23:23
d1jhoni1bd1jhoni1b
7,9851 gold badge53 silver badges37 bronze badges
5
this worked for me:
1- remove all origins
git remote rm origin
(cf. https://www.kernel.org/pub/software/scm/git/docs/git-remote.html)
*remote : "Manage the phối of repositories ("remotes") whose branches you track.
*rm : "Remove the remote named . All remote-tracking branches and configuration settings for the remote are removed."
2- kiểm tra all has been removed :
git remote -v
3- add new origin master
git remote add origin [email protected]:YOUR-GIT/YOUR-REPO.git
that's all folks!
answered Dec trăng tròn, 2017 at 7:22
marcdahanmarcdahan
3,00226 silver badges26 bronze badges
1
If you having issues lớn make connection with your enterprise Github tài khoản then follow the below steps
Solution #1
ERROR: [email protected]: Permission denied (public key). fatal: Could not read
from remote repository. Please make sure you have the correct access
rights
Solution (OSX)
Open your terminal and follow below commands
$ cd ~
$ sudo su
$ ssh-keygen
- Enter tệp tin in which lớn save the key (/var/root/.ssh/id_rsa): $ id_rsa
- Enter passphrase (empty for no passphrase): $ hit enter
- Enter same passphrase again: $ hit enter
$ cd ~/.ssh
$ cat id_rsa.pub
copy display nội dung.
Open GitHub click your profile icon settings>SSH and GPC Keys
Click on the new ssh key button
enter any title and key that you copied
check now your issue is resolved
Solution #2
ERROR 2: remote: Password authentication is not available for Git operations.
remote: You must use a personal access token or SSH key.
remote: See https://github.compnay.com/settings/tokens or https://github.compnay.com/settings/ssh
fatal: unable lớn access 'https://github.company.com/repo/app.git/': The requested URL returned an error: 403
Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
https://namespaceit.com/blog/remote-support-for-password-authentication-was-removed-on-august-13-2021-please-use-a-personal-access-token-instead
answered Nov 19, 2021 at 21:44
Abhishek TomarAbhishek Tomar
8951 gold badge10 silver badges23 bronze badges
5
Yes I too had this question :/ I was going lớn push my project lớn Github in HTTP type(not in SSH type). I had lớn enter my username and password in each push. So first I entered code relevant lớn below type
git remote add origin [email protected]:YOUR-GIT/YOUR-REPO.git
and I got
[email protected]: Permission denied (publickey). fatal: Could not read from remote repository.
So however I solved my problems by doing below methods
git remote rm origin
remove your git remote repositorygit remote
now kiểm tra whether your remote remote repository have been removed
URL =
https://github.com/
/ .git
git remote add origin URL
Again add your URL lớn make remote repositorygit push -u origin master
You can push your nội dung lớn remote repository. In here as you use "-u" with the command you make a tracking branch and with the help of tracking branch in the remote repository you won't lớn tell git what branch you push in the next steps :)
And here if you use linux git will ask username and password before push the nội dung. And give your relevant credentials.
For prevent lớn give username and password in each push you have lớn change git config
For list your git config -
git config --global --list
you will see
user.name=
user.email=
So you have lớn add credential.helper attribute lớn your git config to this
5.git config --global --add credential.helper store
add this lớn your terminal
Now you can add new item lớn your files then git add.
, git commit -m "
, git push
And now too there git will request your username and password and that will be the last time. And for next git pushes git won't request username and password from you :)
answered May 29, 2021 at 14:03
DamikaDamika
7822 gold badges8 silver badges19 bronze badges
I think i have the best answer for you, your git apps read your id_rsa.pub in root user directory
/home/root/.ssh/id_rsa.pub
That's why your key in /home/your_username/.ssh/id_rsa.pub can't be read by git. So you need lớn create the key in /home/root/.ssh/
$ sudo su
$ ssh-keygen
$ cd ~/.ssh
$ mèo id_rsa.pub
Then copy the key in your github tài khoản. It's worked for u. You can try it.
answered Dec 1, năm ngoái at 11:16
romanroman
8501 gold badge12 silver badges24 bronze badges
1
Make sure ssh-add -l
shows a fingerprint of an SSH key that's present in the list of SSH keys in your Github tài khoản.
If the output is empty, but you know you have a private SSH key that works with your github tài khoản, run rẩy ssh-add
on this key (found in ~/.ssh
. It's named id_rsa
by mặc định, sánh you'll likely run rẩy ssh-add id_rsa
).
Else, follow these instructions lớn generate an SSH key pair .
answered Jun 10, năm trước at 21:07
Rose PerroneRose Perrone
63.3k60 gold badges213 silver badges248 bronze badges
In case you are not accessing your own repository, or cloning inside a cloned repository (using some "git submodule... " commands):
In the home page directory of your repository:
$ ls -a
1. Open ".gitmodules", and you will find something lượt thích this:
[submodule "XXX"]
path = XXX
url = [email protected]:YYY/XXX.git
Change the last line lớn be the HTTPS of the repository you need lớn pull:
[submodule "XXX"]
path = XXX
https://github.com/YYY/XXX.git
Save ".gitmodules", and run the command for submodules, and ".git" will be updated.
2. Open ".git", go lớn "config" tệp tin, and you will find something lượt thích this:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = https://github.com/YYY/XXX.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[submodule "XXX"]
url = [email protected]:YYY/XXX.git
Change the last line lớn be the HTTPS of the repository you need lớn pull:
url = https://github.com/YYY/XXX.git
So, in this case, the main problem is simply with the url. HTTPS of any repository can be found now on top of the repository page.
answered Jan 26, năm 2016 at 15:19
N. OsilN. Osil
5047 silver badges13 bronze badges
I was using github earlier for one of my php project. While using github, I was using ssh instead of https. I had my machine phối up lượt thích that and every time I used lớn commit and push the code, it would ask u my rsa key password.
After some days, I stopped working on the php project and forgot my rsa password. Recently, I started working on a java project and moved lớn bitbucket. Since, I had forgotten the password and there is no way lớn recover it I guess, I decided lớn use the https(recommended) protocol for the new project and got the same error asked in the question.
How I solved it?
Ran this command lớn tell my git lớn use https instead of ssh:
git config --global url."https://".insteadOf git://
Remove any remote if any
git remote rm origin
Redo everything from git init lớn git push and it works!
PS: I also un-installed ssh from my machine during the debug process thinking that, removing it will fix the problem. Yes I know!! :)
T J
43.1k13 gold badges86 silver badges142 bronze badges
answered Jan 1, năm 2016 at 6:23
3AK3AK
1,36115 silver badges22 bronze badges
1
OK there are few solutions lớn this one, some of them might already been mentioned but just lớn keep them together:
make sure you keys are present, by mặc định another ~/.ssh/ thư mục, i.e. id.rsa and id.rsa.pub
make sure the keys have correct permissions, you can run rẩy chmod:
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
make sure the nội dung of you public key (id_rsa.pub) matches the one uploaded in the remote repository configuration
Finally fix the problems with ssh agent: ssh-add
Some more info: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html
answered Mar 26, 2019 at 20:16
xprophxproph
1,23112 silver badges7 bronze badges
1
I had the same issue recently. This might help if you need a fix immediately, but this needs lớn be done every time you re-start your system
From terminal, run rẩy : ssh-add ~/.ssh/id_rsa
Enter your system password and that should work.
answered Feb 2, 2017 at 15:28
Allow write access for the key (identity) and then click Add key
If on Windows kiểm tra for more details in Using Github via SSH.
answered Jun 25, 2020 at 18:49
prostiprosti
46.1k19 gold badges196 silver badges161 bronze badges
1
I would lượt thích lớn add some of my findings:
If you are using GitBash
, then make sure the SSH key is stored in ~/.ssh/id_rsa
.
By Default GitBash
searches for ~/.ssh/id_rsa
as mặc định path for SSH key.
Even the tệp tin name id_rsa
matters. If you save your SSH key in another filename or path, it will throw the Permission Denied(publickey)
error.
answered Dec 24, năm 2016 at 10:10
If you have already created an SSH key and are still getting the error it is because you need lớn give the user permissions lớn read and write lớn the thư mục you are cloning into. To bởi this, sudo chmod 777
.
Of course, this is after you have generated an SSH key and you are still getting this error. Hope this helps future users.
Edit
To add on lớn this use admin in Windows if you're using the git bash
answered Sep 8, năm 2016 at 19:52
KevinKevin
1081 silver badge13 bronze badges
3
TLDR:
- make sure you have
write
access lớn the repo (configure it from the repo'ssettings
). - make sure the public key is in the SSH and GPG keys of your github tài khoản.
For u, this error usually occurs when I try lớn clone some repo from a newly installed machine. When receiving a request, github will first kiểm tra the public key hash. If the public key does not match any user, github will reject this request. This case is common if the machine is new and your ssh key is newly generated.
answered Jan 5, 2022 at 3:16
Han ZhangHan Zhang
4224 silver badges6 bronze badges
4
Also in ubuntu, even though there was already SSH key entered in settings in BitBucket, I got this problem. The reason was, I was trying the following:
sudo git push origin master
Not sure why, but it got solved by using
git push origin master
No sudo used.
answered Feb 28, năm 2016 at 10:25
NabinNabin
11.7k8 gold badges69 silver badges102 bronze badges
1
I was having a similar problem lớn @Batman. However, because I was running this under /usr/local/src/projectname, running without sudo was not an option.
Just add the -E flag lớn preseve the environment (your ~/.ssh/ path).
$ sudo -E git clone git@your_repo
From man sudo:
-E, --preserve-env Indicates lớn the security policy that the user wishes lớn pre‐ serve their existing environment variables. The security policy may return an error if the user does not have permis‐ sion lớn preserve the environment.
answered Feb 24, 2017 at 1:28
justinjustin
6611 gold badge8 silver badges18 bronze badges
1
If you are using Widows-10, follow this instruction. It works for u.
Open terminal as administrator
run this command: "ssh-keygen". It generate a ssh key and will show the thư mục where it has been created. Check my image
copy the generated "ssh key"
go lớn your github profile ---> settings --> Click SSH and GPH --> Click ""New SSH Key Button" and paste the "ssh key" and finally "clickthe add Button"
answered Dec 15, 2021 at 11:01
coding360coding360
1711 silver badge2 bronze badges
1
In case somebody else needs this. I created an ssh key with a different name lượt thích ar-2022-ssh
in the user's .ssh thư mục. The problem with this is that Checking for existing SSH keys specifies that supported public keys for GitHub are one of the following.
id_rsa.pub
id_ecdsa.pub
id_ed25519.pub
Once I changed my ssh key name lớn one of those when generating a key, it worked connecting lớn GitHub
answered Jun 13, 2022 at 12:35
kenshimakenshima
5834 silver badges17 bronze badges
1
I faced the same problem.
[email protected]: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
You can track these steps if using the linux:
1. Check for existing SSH keys:
ls -al ~//.ssh/
2. Generate a new SSH key:
ssh-keygen -t ed25519 -C "
3. Add your SSH key lớn ssh agent:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
4. Add your public SSH key lớn your GitHub account:
cat < ~/.ssh/id_ed25519.pub
Now you are able lớn push again.
answered Jun 11, 2023 at 17:14
you can use Https url lớn login
i guess you are trying lớn login with ssh url when you say git push if it as asking only password consider you are connecting through ssh.better you use http url.
answered Jul 30, năm ngoái at 3:24
For u I tried this -
eval "$(ssh-agent -s)"
then I run rẩy
ssh-add ~/.ssh/path-to-the-keyfile
and for generating the key you can run rẩy
ssh-keygen -t rsa -b 4096 -C "[email protected]"
this will generate the pair of keys (Public and private).
you can store this key lớn github for more read this Adding a new SSH key lớn your GitHub account
I hope it will help others :)
answered Dec 8, năm 2016 at 10:52
JoomlerJoomler
2,7983 gold badges32 silver badges38 bronze badges