【问题标题】:unable to pull/push to remote repo on github from mac terminal无法从 mac 终端拉/推到 github 上的远程仓库
【发布时间】:2016-05-09 06:53:08
【问题描述】:

我从 mac 终端将现有的 github 存储库克隆到我的本地,我拉了几次没有问题。我修改了一些代码,然后添加 .并提交,现在我不能在没有“权限被拒绝(公钥)”的情况下拉或推。我尝试过同时使用 ssh 和 https,并且有大量关于如何解决此问题的信息,但似乎对我没有任何作用,这让我发疯。

当我输入 ssh -vT git@github.com

我明白了:

debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to github.com [....ip....] port 22.
debug1: Connection established.
debug1: identity file /Users/macbookpro/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory

我的 id_rsa 实际上在路径中:

/Users/macbookpro/Documents/pub_key/id_rsa

如果这是问题,我该如何更新路径?

自从我克隆了 repo 后,我不应该只输入 git pull 吗?

【问题讨论】:

  • 问题是您的 ssh 没有选择正确的钥匙串。它与 git 本身无关。看herehere

标签: git macos github ssh version-control


【解决方案1】:

将 ssh 密钥移动到 ~/.ssh 文件夹

另一种选择是使用以下内容创建.ssh/config 文件:

Host name github.com
   HostName github.com
   IdentityFile /Users/macbookpro/Documents/pub_key/id_rsa 
   User <username>

或者干脆将密钥添加到 ssh-agent:

ssh-add /Users/macbookpro/Documents/pub_key/id_rsa
eval $(ssh-agent)

【讨论】:

  • eval 应该在 ssh-add 之前(如果没有代理运行)
  • 不是强制性的,因为它试图从默认位置加载密钥。查看原始问题
  • 我只是 cd 进入 .ssh,我实际上有一个名为 id_rsa 的文件。如何创建配置文件?
  • 如果ssh-add成功,不需要执行ssh-agent;如果不是,则必须首先运行 ssh-agent(顺便说一句,它是 eval $(ssh-agent))。您在 .ssh/config 文件的标题中也有错字
  • 同意。但并非所有用户都知道它是如何工作的,所以我更愿意解释一下。
猜你喜欢
  • 1970-01-01
  • 2011-07-26
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 2014-12-22
  • 1970-01-01
  • 2019-06-29
相关资源
最近更新 更多