【问题标题】:OSX SSH keys seem unavailable to gitgit 似乎无法使用 OSX SSH 密钥
【发布时间】: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,我不知道如何回到正轨。

标签: git macos github ssh


【解决方案1】:

首先,确保您的公钥是correctly registered on your GitHub profile(作为一个连续的行,其中没有任何换行符)。

其次,确保生成(至少用于测试)私钥受密码保护:您只需要 ssh 代理来管理带有密码的密钥。如果您的密钥没有密码,则根本不需要 ssh 代理。

  ssh-keygen -t rsa -C "key for GitHub access" -q -P ""

这将替换您当前的密钥,因此请确保您不再需要当前密钥。
Test your key 与 ssh -T git@github.com

【讨论】:

  • 不使用密码是问题所在。我不知道为什么我的钥匙一开始就停止工作,但这让我重新启动并运行!非常感谢!现在我可以弄清楚为什么 SSH-agent 不正常,看看我是否可以再次开始使用受密码保护的密钥。
  • OS X 行为已更改。您需要在每次登录/重启后重新添加密钥。
猜你喜欢
  • 2019-01-19
  • 2021-06-06
  • 1970-01-01
  • 2023-01-05
  • 2021-09-02
  • 1970-01-01
  • 2012-06-21
  • 2014-01-18
  • 1970-01-01
相关资源
最近更新 更多