【发布时间】:2017-06-04 00:28:59
【问题描述】:
当我尝试将提交推送到 GitHub 时,我得到了一个
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
幸运的是,help.GitHub 有a great article on solving SSH issues. 我浏览了这个指南,发现ssh-add -l -E md5 返回The agent has no identities. 指南says to generate a new key,我做到了。之后,ssh-add 按预期返回类似2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA) 的内容。
太好了,我想,问题解决了。我尝试另一个推送,并得到相同的公钥问题。我已确保在 GitHub 中正确设置了我的密钥。当我开始一个新会话时,ssh-add 再次不返回任何身份。我什至按照上面的文章从头开始了这个过程。我有 checked my permissions,现在我没有解决问题的线索了。
【问题讨论】:
-
如果没有完整的操作日志、它们返回的值等,很难知道发生了什么。例如,如果您启动了一个新代理,您可能已将密钥加载到 代理,而不是 Apple 的代理——这可以解释为新终端对此一无所知。
-
...所以,运行
eval "$(ssh-agent -s)"的所有指令实际上不适用于 MacOS:Keychain 已经为您提供了一个与会话中的所有内容共享的代理。 -
顺便说一句,您的代理中有一个密钥(“您的代理”是 Apple Keychain,而不是您手动调用的任何内容),请使用
ssh-add -L(是的,capital @ 987654333@) 转储公共方面,并确保它与您在 github 中的完全一致——只是为了确保它在两个地方都是相同的密钥。 -
apple.stackexchange.com/questions/48502/… 可能值得一试——注意
UseKeychain指令。 -
@CharlesDuffy 我能做些什么来让这个问题更有帮助吗?从我的角度来看,我在一个项目上巡游,然后有一天我回来了,不,我不能再推送到 GitHub,我不知道如何回到正轨。