我从终端窗口通过 ssh 连接时输入密码后出现此错误,自从我按照这些指示可重用 ssh 连接:
“...考虑将以下内容附加到您的~/.ssh/config 文件:”
Host *
ControlPath ~/.ssh/master-%r@%h:%p
ControlMaster auto
什么会导致标题中的错误?这是在当前的夜间版本 hrev46508 上连接到 CentOS 6.4 sshd 时发生的。
答案1
无法在~/.ssh/master-%r@%h:%p
检查.ssh
目录中设置套接字是否存在、权限是否正确等。如果主连接已经存在(套接字存在),但套接字具有错误的权限,或者如果您的新 ssh 客户端连接正在尝试成为主连接(通常是因为其模式未设置为自动),也可能会出现此错误。
答案2
我在研究类似问题时发现了这个问题。事实证明,当您使用不支持 ControlPath/Master 设置的 OpenSSH 版本时会出现此错误,但在配置中包含您提到的行。
就我而言,我运行的是 CentOS 6,其中包含的 openssh 版本是 5.3(这是在他们添加 Control 内容之前)。Redhat/CentOS 软件包周期的乐趣之一就是您会遇到这样的事情,因为他们倾向于将补丁反向移植到主要软件的旧版本中,而不是引入更新的软件包。
无论如何,要解决此问题,您需要从 ssh 配置(包括 ~/.ssh/config)中删除所有 ControlPath / ControlMaster 条目。或者,您可以从他们的网站下载最新的 OpenSSH 包并安装它(但如果您打算定期执行此类操作,则应考虑使用非 Redhat/CentOS 发行版)。
答案3
虽然这不是问题所在,但在我的配置中包括
ControlPath /home/barry/.ssh/tmp/%h_%p_%r
而我忘了先创建/home/barry/.ssh/tmp
。