所以我像往常一样推送我的代码,并且:
git push heroku master
你不存在,走开!
致命:远端意外挂断
有谁知道这应该是什么意思?
如果您从 OS X 推送,那么 OS X 可能会进入这种时髦状态,您的用户不知道自己的身份——您可以通过键入“id”命令来确认,您会看到您的用户名丢失,或尝试 sudo 不起作用。
出于某种原因,这似乎解决了它:
dscacheutil -flushcache
通常是这样的:
The remote end hung up unexpectedly
告诉我们连接问题。但是这个:
You don't exist, go away!
通常意味着SSH客户端无法解析您的用户名(LDAP错误?)所以,我认为这是您这边的问题,但要解决它,应该有更多信息。
您可能正在运行 nscd。该事物缓存 passwd 条目,以便程序不会浪费时间解析 /etc/passwd、调用 NIS、LDAP 或其他任何东西。
如果事物的数据库损坏(现在不太可能),或者如果它缓存了否定答案(更有可能),它可以从缓存中删除任意用户。“sudo nscd -i passwd”应该可以工作。
如果这不能解决问题,请终止 nscd 以便不再缓存请求。解决问题。然后删除/var/cache/nscd/passwd
并重新启动 nscd。
如果 LDAP/NIS/whatever 没有及时回答,并且未回答被误解为“不存在的条目”而不是“服务问题”,就会发生这种情况。
这通常是由在用户的身份验证凭据更改之前正在运行的进程引起的。(即密码更改)
sshd 可以缓存用户的凭据,这意味着更改前的凭据仍然有效。重新启动使用 ssh 的服务将解决此问题。
我今天再次尝试推送到heroku,它自动神奇地工作了。我没有任何变化。
不过,感谢其他所有人的所有想法,我正准备做所有这些事情,但我想在潜入之前试一试,它就奏效了。
我想我们永远不会知道它到底是什么...