与Control Master的共享SSH连接不起作用

时间:2016-04-06 18:45:19

标签: sockets ssh openssh

我已经设置好在本地计算机上共享ssh连接,但是当我尝试在我们的CI服务器上执行此操作时,它失败了,我无法解决原因。

〜/ .ssh / config是

StrictHostKeyChecking=no
Host *
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
ControlPersist 2h

第一次连接将失败,但会创建套接字,第二次连接将因套接字失效而失败。

第一次连接的详细输出结束是....

$ ssh -vvvv -N  user@domain.co.uk

....

debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1
debug1: match: OpenSSH_6.6.1 pat OpenSSH_6.6.1* compat 0x04000000

....

Authenticated to domain.co.uk ([88.47.112.93]:22).
debug1: setting up multiplex master socket
debug3: muxserver_listen: temporary control path /home/rof/.ssh/control:domain.co.uk:22:user.3HfyjbhRCDHGwnrI
debug2: fd 4 setting O_NONBLOCK
debug3: fd 4 is O_NONBLOCK
debug3: fd 4 is O_NONBLOCK
debug1: channel 0: new [/home/rof/.ssh/control:domain.co.uk:22:user]
debug3: muxserver_listen: mux listener channel 0 fd 4
debug2: fd 3 setting TCP_NODELAY
debug3: packet_set_tos: set IP_TOS 0x08
debug1: control_persist_detach: backgrounding master process
debug2: control_persist_detach: background process is 84004
Control socket connect(/home/rof/.ssh/control:domain.co.uk:22:user): Connection refused
Failed to connect to new control master
debug1: forking to background
debug1: Entering interactive session.
debug2: set_control_persist_exit_time: schedule exit in 7200 seconds

如果在没有-N选项的情况下运行它,命令输入就会挂起。

任何后续的ssh连接都说套接字是陈旧的并且取消链接,因此不使用共享连接。

有什么想法吗?

1 个答案:

答案 0 :(得分:9)

对于遇到此问题的其他任何人,这是因为我们使用的CI服务器使用overlayfs作为其文件系统,这对unix套接字不起作用。

为了解决这个问题,我将套接字保存在虚拟内存中而不是..

ControlPath /var/shm/control:%h:%p:%r