关于git push没有权限的问题,已设置公钥

首先呢,我已经弄好了ssh的密钥,ssh -T git@github.com是可以的,返回:
Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.
但是,当我想要git push的时候,总是失败,提示是:
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
FATAL Something's wrong. Maybe you can find the solution here: xxxxxxxxxxxx
请问这是什么情况,

我执行的是
git remote add origin git@github.com:xxxxxxx/test.git
git push -u origin master

阅读 161.2k
7 个回答

我也遇到这个问题了,并且记录了解决方式
http://youcanping.cn/2017/12/20/ssh-Permission-denied/

5. 看本地的.git/config设置的仓库url地址和github使用的链接地址是否一致如下图,如use https,则url需要用https的仓库地址,我的就是这个问题。

> cat .git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
[remote "origin"]
        url = https://github.com/youcanping/MyBlog.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

设置Git的user name和email

git config --global user.name "yourname"
git config --global user.email "youremail"

生成SSH密钥

查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
生存密钥:
ssh-keygen -t rsa -C “haiyan.xu.vip@gmail.com”
按3个回车,密码为空。
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………
最后得到了两个文件:id_rsa和id_rsa.pub

添加密钥到ssh:ssh-add 文件名,需要之前输入密码.

在github上添加ssh密钥,这要添加的是“id_rsa.pub”里面的公钥。
打开https://github.com/,在设置中添加密钥

测试:ssh git@github.com
The authenticity of host ‘github.com (207.97.227.239)’ can’t be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘github.com,207.97.227.239′ (RSA) to the list of known hosts.
ERROR: Hi tekkub! You’ve successfully authenticated, but GitHub does not provide shell access
Connection to github.com closed.

测试成功就可以push code了.

出现相同异常情景:

(1)搭建个人Git服务器;
(2)备份旧 ssh keys ,并重新生成新的 ssh keys;
(3)想到旧的 ssh keys 是提供给GitHub要用的就又改回去;
(4)再 push 项目到 Github 的时候,提示让我输入 id_rsa。正确输入 id_rsa 后遇到了作者所述异常;

解决方案:

 参考高票回答所述:在 .ssh 文件夹中执行 `ssh-add id_rsa`,再输入正确密码即可。
新手上路,请多包涵

我也遇到题主同样的问题,也没有在网上找到妥善的解决办法,但是通过重新配置密钥后解决了这个问题。

新手上路,请多包涵

需要重新选择下git上的ssh地址 因为默认配置的https地址。

一般充值本机的ssh-key是不明智的,除非ssh-key只有在GitHub使用,不然每个使用的地方都要重新设置一下,很麻烦。
我刚刚只是把GitHub的key删除重新设置了一下就好了。

推荐问题
logo
Microsoft
子站问答
访问
宣传栏