Mac OS X Lion Terminal SSH 连接共享错误

Mac OS X Lion Terminal SSH 连接共享错误

当我尝试 ssh 到远程主机时,有时会收到此错误:

mux_client_request_session: read from master failed: Broken pipe

我在 ~/.ssh/config 中使用 Macbook Air OS X Lion:

ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r

ControlPersist 4h

ForwardAgent yes

Host [ex]
    HostName [example.com]
    User [somedude]

当我这样做时会发生上述错误:

ssh ex

终端挂起约 1 分钟,然后显示:

mux_client_request_session: read from master failed: Broken pipe
[email protected]'s password:

我输入密码后一切正常。如果我打开另一个终端选项卡,连接共享也一切正常。我该如何解决这个问题?这不是很糟糕,但很烦人。

答案1

您已ControlPersist启用。我猜测会发生以下情况:

  1. 您已连接到 example.com
  2. 注销,但由于ControlPersist已启用,会话将保持打开以供将来连接。
  3. 您的网络连接出现问题,因此持续连接中断。
  4. 当您再次运行时,它会尝试重用步骤 2 中的连接,并在超时后打开一个新的连接。ssh [email protected]

根据 ,此超时没有单独的选项可用man ssh_config。为避免这种情况,请勿使用ControlPersist。此外,如果可能,我强烈建议使用公钥登录。您仍然可以为公钥设置密码,但公钥可以有效防止通过 SSH 连接暴力破解您的密码。

此外,您不应将控制文件存储在 下/tmp。这些文件应该/必须得到保护,为此,例如,这~/.ssh/master/ssh_mux_%h_%p_%r是更好的位置。当然,如果您是笔记本电脑的唯一用户(?),那不是太大的问题。

相关内容