ssh - 控制套接字不存在 - 操作超时

Posted

技术标签:

【中文标题】ssh - 控制套接字不存在 - 操作超时【英文标题】:ssh - Control socket does not exist - Operation timed out 【发布时间】:2017-09-21 13:26:47 【问题描述】:

当我尝试从 Mac 上通过 SSH 连接到远程桌面时,我收到以下错误消息:

$ ssh -vvvv john@dev-dsk-john.com
OpenSSH_7.4p1, LibreSSL 2.5.0
debug1: Reading configuration data /Users/john/.ssh/config
debug1: /Users/john/.ssh/config line 26: Applying options for *
debug1: /Users/john/.ssh/config line 40: Applying options for dev-dsk*.amazon.com
debug1: /Users/john/.ssh/config line 165: Applying options for *.us-east-*.amazon.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: auto-mux: Trying existing master
debug1: Control socket "/tmp/ssh_mux_dev-dsk-john.com_22_john" does not exist
debug2: resolving "dev-dsk-john.com" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to dev-dsk-john.com [10.1.133.160] port 22.
debug1: connect to address 10.1.1.1 port 22: Operation timed out
ssh: connect to host dev-dsk-john.com port 22: Operation timed out

连接在“debug1: Connecting to dev-dsk-john.com [10.1.133.160] port 22”处挂起。

三天前它还在工作。

系统说主机仍然处于活动状态,所以我很确定计算机仍然处于开机状态。

【问题讨论】:

不要在没有给出原因的情况下投票关闭它。有人可能会遇到同样的问题并搜索“控制套接字不存在 - 操作超时”并需要这篇文章。 *** 用于解决有关软件开发的问题。 ssh 是一个通用实用程序。它不是专门的开发工具,人们可能对它提出的每一个问题都不会自动成为这里的主题。此外,“操作超时”不是编程错误或特定于 ssh 的故障模式;这是任何基于 TCP/IP 的实用程序都可能遇到的一般问题。而且“控制套接字不存在”不是错误消息(除非出于特殊原因您应该拥有控制套接字)并且与超时无关。 那么这属于哪里(以及为什么首先在堆栈溢出中有一个 ssh 标记)? 我通常推荐Super User 或Unix & Linux,假设您在unix 系统上执行此操作。您应该澄清您是在询问操​​作超时消息还是控制套接字消息,因为它们彼此无关。 @MichaelLafayette 看标签说明:“[SSH] 是一种加密网络协议[...] 使用这个标签解决与[SSH] 相关的编程问题” 【参考方案1】:

今天遇到同样的问题,终于解决了。

我首先验证了控制套接字确实不存在。我的路径是“/home/ethan/.ssh/controlmasters/ethan@a.b.c.d:22”,但这并不存在。

然后我像这样运行 ssh:

ssh -M -S /home/ethan/.ssh/controlmasters/ethan@<ipaddr>:22  server.example.org

现在,它连接并创建了控制套接字。随后,我可以打开另一个 ssh,不需要密码,一切正常。

【讨论】:

以上是关于ssh - 控制套接字不存在 - 操作超时的主要内容,如果未能解决你的问题,请参考以下文章

Internet 上的 Java 套接字:ConnectException(操作超时)

Jenkins SSH 插件/SSH 代理插件:异常:超时:未建立套接字

Unix网络编程 高级IO套接字设置超时

限定ssh登录超时时间

如何设置socket的Connect超时

超时时间已到。在操作完成之前超时时间已过或服务器未响应。