解决 GitHub for macOS 的出错信息

2017/8/18 comments

很久之前在 segmentfault 回答的问题,但现在要停用此账号。

出错信息:

2014-11-19 20:41:30.130 GitHub for Mac Login[2595:326257] AskPass with arguments: (
    "/Applications/GitHub.app/Contents/MacOS/GitHub for Mac Login",
    "Username for 'https://github.com': "
)
2014-11-19 20:41:30.200 GitHub for Mac Login[2596:326280] AskPass with arguments: (
    "/Applications/GitHub.app/Contents/MacOS/GitHub for Mac Login",
    "Password for 'https://tcitry@github.com': "
)
fatal: unable to access 'https://github.com/tcitry/tcitry.github.io.git/': Empty reply from server
 (128)

解决方案

  1. 检查远程库地址
    进入客户端设置(Settings)检查远程库地址,应该是类似这样的地址:https://github.com/~.git
  2. 修改远程库地址
    按着此格式 git@github.com:~.git 修改远程库地址,然后点击 Update Remote
  3. 提交
    注意使用终端提交的同样修改提交地址即可。

问题分析

这应该不是 SSH KEY 的问题,应该也不是升级系统的原因。使用 HTTPS 连接会要求输入账户密码(这是加密连接,有些公司内网只支持此种连接方式)。但是,必须确保此时的公钥与私钥是正确对应的,尤其是经过诸多测试后。

  • 确认秘钥

请看 官方帮助文档 提供的故障排除详细指南。如果问题仍在,那应该是没仔细观阅。

尤其注意 ssh -vT git@github.com 命令的运行结果:

Offering RSA public key: /Users/you/.ssh/id_rsa 说明调用的 KEY

Trying private key: /Users/you/.ssh/id_rsa 说明 KEY 不存在

注意 GitHub客户端会自动生成 KEY(github_rsa & github_rsa.pub)并自动添加公钥。所以不必再生成 KEY 了。

即使再生成也没有影响,两者默认命名是不同的,不会覆盖。

  • 郁闷

但是我的的客户端昨天还好好的,今天就得改下远程库地址连接方式才能提交。好诡异。寻找原因中。愿与诸位共讨论。