Mat*_*son 3 sockets ssh openssh
我已经设置好在我的本地机器上共享一个ssh连接,但是当我尝试在我们的CI服务器上执行此操作时,它失败了,我无法解决原因.
〜/ .ssh/config是
StrictHostKeyChecking=no
Host *
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
ControlPersist 2h
Run Code Online (Sandbox Code Playgroud)
第一个连接将失败,但会创建套接字,第二个连接将失败,因为套接字是陈旧的.
第一次连接的详细输出结束是....
$ 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
Run Code Online (Sandbox Code Playgroud)
如果在没有-N选项的情况下运行它,命令输入就会挂起.
任何后续的ssh连接都说套接字是陈旧的并且取消链接,因此不使用共享连接.
有任何想法吗?
对于有这个问题的其他人来说,这是因为我们使用的CI服务器overlayfs用作其文件系统,这与unix套接字不兼容.
为了解决这个问题,我将套接字保存在虚拟内存中.
ControlPath /var/shm/control:%h:%p:%r
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3321 次 |
| 最近记录: |