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

我正在使用终端,我在根,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帐户,以及工作和大学的不同帐户,这对我来说很有效:

->进入您的SSH配置

cd ~/.ssh/
vim config

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

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

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

其他回答

我在之前的一个php项目中使用github。在使用github时,我使用的是ssh而不是https。我把我的机器设置成这样,每次我提交和推送代码时,它会问我的rsa密钥密码。

几天后,我停止了php项目的工作,忘记了我的rsa密码。最近,我开始在一个java项目上工作,并搬到了bitbucket。因为,我忘记了密码,没有办法恢复它,我猜,我决定使用https(推荐)协议的新项目,并得到了同样的错误在问题中询问。

我是怎么解决的?

运行这个命令告诉我的git使用https而不是ssh: Git配置——全局url."https://"。与其使用git: / / 如果有遥控器,移除遥控器 Git远程rm来源 重做一切从git init到git push,它工作!

PS:我还在调试过程中从我的机器上卸载了ssh,以为删除它就能解决问题。是的,我知道!:)

如果您正在使用GitHub for Mac UI,请检查首选项以确保您已登录。

如果您没有访问自己的存储库,或者在克隆的存储库中进行克隆(使用一些“git submodule…”“命令):

在存储库的主目录中:

$ ls -a

1. 开放”。,你会发现这样的东西:

[submodule "XXX"]
    path = XXX
    url = git@github.com:YYY/XXX.git

将最后一行更改为您需要提取的存储库的HTTPS:

[submodule "XXX"]
    path = XXX
    https://github.com/YYY/XXX.git

保存”。“Gitmodules”,并为子模块运行命令。Git”将被更新。

2. 开放”。Git”,转到“config”文件,你会发现这样的东西:

[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 = git@github.com:YYY/XXX.git

将最后一行更改为您需要提取的存储库的HTTPS:

    url = https://github.com/YYY/XXX.git

因此,在本例中,主要问题只是url。任何存储库的HTTPS现在都可以在存储库页面的顶部找到。

我也遇到了和蝙蝠侠类似的问题。但是,因为我是在/usr/local/src/projectname下运行的,所以不使用sudo是不行的。

只需添加-E标志来保护环境(您的~/。ssh /路径)。

$ sudo -E git克隆git@your_repo

来自man sudo:

- e, preserve-env 指示用户希望预先设置的安全策略 服务于它们现有的环境变量。安全 如果用户没有权限,策略可能会返回错误 保护环境。

GitHub无法验证你的身份。所以,要么你没有安装SSH密钥,因为你还没有在你的机器上设置一个,要么你的密钥没有与你的GitHub帐户相关联。

您还可以使用HTTPS URL而不是SSH/git URL来避免必须处理SSH密钥。这是GitHub推荐的方法。

此外,GitHub有一个专门针对该错误消息的帮助页面,并更详细地解释了您可以检查的所有内容。