有人看到这个错误并知道该怎么做吗?
我正在使用终端,我在根,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.
有人看到这个错误并知道该怎么做吗?
我正在使用终端,我在根,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.
当前回答
TLDR:
确保您拥有对回购的写访问权限(从回购的设置中进行配置)。 确保公钥在你的github帐户的SSH和GPG密钥中。
对我来说,这个错误通常发生在我试图从新安装的机器上克隆一些repo时。当收到请求时,github将首先检查公钥哈希。如果公钥不匹配任何用户,github将拒绝此请求。如果机器是新的,并且您的ssh密钥是新生成的,则这种情况很常见。
其他回答
可能您的ssh-agent未启用 你可以试试
下载
http://git-scm.com/
安装它 使ssh-agent
C:\Program Files\Git\cmd
start-ssh-agent
如果您没有访问自己的存储库,或者在克隆的存储库中进行克隆(使用一些“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现在都可以在存储库页面的顶部找到。
博士tl;
在~ /。ssh / config把
PubkeyAcceptedKeyTypes=+ssh-dss
场景 如果你使用的是openSSH > 7版本,比如在MacBook Pro的触控条上,它是ssh -V OpenSSH_7.4p1, LibreSSL 2.5.0
你也有一个旧的Mac,原来有你的密钥,你放在Github上,这是可能的,这是使用一个id_dsa密钥。OpenSSH v7没有在默认情况下使用这些DSA密钥(包括这个ssh-dss),但是您仍然可以通过将以下代码放入~/.ssh/config中来添加它
PubkeyAcceptedKeyTypes=+ssh-dss
对我有用的来源是这个Gentoo通讯
现在你至少可以使用GitHub,然后将密钥修复到RSA。
我也有同样的问题,但没有一个答案有效,但一个简单的解决方案有效。但是请注意,我确实首先添加了答案所建议的ssh密钥。不知道这是否真的有用。总之,这是最后成功的方法:
使用git远程将远程的URL从HTTPS更改为SSH set-url命令。$ git remote set-url origin git@github.com:USERNAME/REPOSITORY.git。验证远程URL 已经改变了。
我也遇到了这个问题,因为我使用了几个GIT帐户,以及工作和大学的不同帐户,这对我来说很有效:
->进入您的SSH配置
cd ~/.ssh/
vim config
->复制下面的块,并填写您想要推送到/with的主机和用户
Host [Hostname]
User [User]
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa
我得到这个问题的几个主机名,所以现在我有几个这些配置在我的ssh配置文件。