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

我正在使用终端,我在根,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.

当前回答

允许对密钥(标识)进行写访问,然后单击“添加密钥”

如果在Windows上,请检查通过SSH使用Github中的更多详细信息。

其他回答

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

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

$ sudo -E git克隆git@your_repo

来自man sudo:

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

博士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。

我在远程主机上使用git pull寻找类似错误消息的解决方案时发现了这个页面:

$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

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

我通过ssh -AY remote_hostname从本地计算机连接到远程主机。这不是OP问题的解决方案,但对其他遇到这个页面的人很有用,所以把它贴在这里。

注意,在我的例子中,git pull在我的本地机器上工作良好(也就是说,ssh密钥已经设置,并添加到GitHub帐户等)。我通过将这个添加到~/来解决我的问题。Ssh /config在我的笔记本电脑:

Host *
     ForwardAgent yes

然后我用ssh -AY remote_hostname重新连接到远程主机,git拉现在工作了。配置中的更改允许将我的ssh对从本地计算机转发到任何主机。ssh的-A选项实际上是在ssh会话中转发它。点击这里查看更多细节。

我得到了这个错误。原来我刚刚将OSX升级到Sierra,我的旧密钥不再注册了。

一开始我以为是“升级到macOS Sierra会破坏你的SSH密钥并将你锁在自己的服务器之外”

但我避开了这个问题。结果我只需要重新注册我现有的密钥:

ssh-add - k

然后输入密码…完成了!

假设您正在通过SSH连接GitHub,您可以运行以下命令来确认这一点。

$git config --get remote.origin.url

如果您得到的结果格式如下:git@github.com:xxx/xxx.github.com.git,那么您应该执行以下操作。

生成SSH密钥(或使用现有密钥)。如果你有一个,你只需要将你的密钥添加到ssh-agent(步骤2)和你的GitHub帐户(步骤3)。

下面是那些没有SSH密钥的人。

步骤1生成rsa公私钥对。

$ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

系统会要求您确认保存SSH密钥的位置以及您想使用的密码短语。

步骤2在ssh-agent中添加密钥

确保ssh-agent已启用 $eval "$(ssh-agent -s)" 将SSH密钥添加到SSH -agent: ssh-add ~ / . ssh / id_rsa美元

步骤3在帐号中添加SSH密钥

安装xclip

$xclip -sel clip < ~/.ssh/id_rsa.pub

然后将复制的密钥添加到GitHub

进入“设置”->SSH密钥(个人设置侧栏)->添加SSH密钥->填写表单(密钥在剪贴板上,只需使用ctrl+v)->添加密钥

通过以上步骤,您应该可以解决权限问题。

参考链接: 生成SSH密钥。