有人看到这个错误并知道该怎么做吗?

我正在使用终端,我在根,GitHub存储库存在,我不知道现在该做什么。

> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

当前回答

我想我有最好的答案给你,你的git应用程序读取你的id_rsa。根用户目录下的Pub

/home/root/.ssh/id_rsa.pub

这就是为什么你的密钥在/home/your_username/.ssh/id_rsa中。少年犯看不懂酒吧。因此,您需要在/home/root/.ssh/中创建密钥

$ sudo su
$ ssh-keygen
$ cd ~/.ssh
$ cat id_rsa.pub

然后复制密钥在你的github帐户。 这对我很有效。你可以试试。

其他回答

我试图用几个小时来解决类似的问题。最后,我删除了所有的密钥,并创建了没有密码的新密钥,最终摆脱了这个问题。

问题是SSH密码,需要删除!

可能您的ssh-agent未启用 你可以试试

下载

http://git-scm.com/

安装它 使ssh-agent

C:\Program Files\Git\cmd

start-ssh-agent

是的,我也有这个问题:/我要把我的项目推到Github的HTTP类型(不是SSH类型)。每次推送时我都必须输入用户名和密码。 因此,首先我输入了与以下类型相关的代码

git remote add origin git@github.com:YOUR-GIT/YOUR-REPO.git

我得到了

git@github.com:拒绝权限(publickey)。 无法从远程存储库读取。

因此,我通过以下方法解决了我的问题

Git远程rm来源删除你的Git远程存储库 Git远程现在检查您的远程存储库是否已被删除

网址= https://github.com/<username>/<repository>.git

再次添加您的URL,使远程存储库 Git push -u origin master 您可以将内容推送到远程存储库。在这里,当你在命令中使用"-u"时,你创建了一个跟踪分支,并且在远程存储库中的跟踪分支的帮助下,你不会告诉git你在接下来的步骤中推送哪个分支:) 如果你使用linux, git会在推送内容前询问用户名和密码。并提供你的相关证书。

为了防止在每次推送中提供用户名和密码,您必须更改git配置

对于列出你的git配置- git config——global——list 你会看到

user.name=<your_username>
user.email=<your_email>

所以你必须添加证书。Helper属性添加到git配置中 这个

5.Git配置——global——添加证书。助手存储将此添加到您的终端 现在你可以添加新的项目到你的文件,然后git add., git commit -m "<message>", git push 现在git也会要求你的用户名和密码,这将是最后一次。下一个git推送git不会向你请求用户名和密码:)

你在你的~/中创建了配置文件吗?ssh目录吗?它应该有这样的内容:

Host github.com 
 IdentityFile ~/.ssh/github_rsa

假设您创建了一个名为github_rsa的ssh密钥

然后上传到GitHub…

注意:如果~/中有多个键(2个或更多),则必须采用这种显式配置方式。ssh /目录。如果你不这样指定密钥,那么第一个密钥将被用于github身份验证,因此它取决于密钥文件名。

我也遇到了这个问题,因为我使用了几个GIT帐户,以及工作和大学的不同帐户,这对我来说很有效:

->进入您的SSH配置

cd ~/.ssh/
vim config

->复制下面的块,并填写您想要推送到/with的主机和用户

Host [Hostname]
User [User]
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa

我得到这个问题的几个主机名,所以现在我有几个这些配置在我的ssh配置文件。