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


12

当我尝试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
somedude@example.com's password:

我输入密码,没关系。如果我打开另一个“终端”选项卡,则连接共享也可以。我怎样才能解决这个问题?这并不可怕,但是很烦人。


您可以从Macbook air登录任何其他远程计算机吗?其他机器可以登录到somedude@example.com吗?
jessh 2013年

Answers:


14

您已ControlPersist启用。我的推测是发生了以下情况:

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.