在 Windows 上保持 ssh 连接打开?

在 Windows 上保持 ssh 连接打开?

我知道在 Unix 系统上,您可以保持 ssh 连接打开。

步骤1:创建ssh配置,例如:

 Host <some.host.name>
 ControlPath ~/.ssh/master-%r@%h:%p
 ControlPersist yes

第2步:使用参数启动ssh -M

Windows 下是否有等效的东西可以重用 ssh 连接?也许我找错了地方,但我没有找到有关该主题的任何好的链接。

(我在 MingGW 环境中尝试了上述方法(使用 MingGW 的 ssh 客户端)。在真正的 Unix 系统中,它应该在中创建一个特殊的套接字文件~/.ssh,但 MingGW 似乎不支持该功能。)

答案1

您需要使用适用于 Windows 的 openssh,可以通过 cygwin 或以下端口:http://miked.ict.rave.ac.uk/display/sshwindows/OpenSSH+for+Windows

答案2

你在谈论两件不同的事情:

您的主题表明无限期地保持连接打开,我的回答是:如果您使用的是 puTTY,那么您可以在会话配置中设置保持活动:配置 => 连接:发送空数据包以保持会话活动状态保持活动之间的秒数(0 为关闭)

您的文本表示连接共享。不知道 PuTTY 是否支持该功能。

谨致问候, Viktor Zacek

答案3

错误 1278 - CYGWIN controlMaster 连接不起作用。描述了截至 2016 年 12 月在 Cygwin 下部分实现的 ControlMaster/ControlPersist 的使用情况,但有一个限制,即它仅适用于远程命令,而不适用于需要伪终端的连接。

虽然这个答案在 Cygwin 本身下没有得到证实,但对于 MSYS2(基于 Cygwin)来说,它被验证为正确。MSYS2 下的 openssh 支持远程命令的 ControlMaster/ControlPersist 连接,但不支持交互式会话。

$ cygcheck -V | head -3
cygcheck (msys) 3.0.7
System Checker for Msys
Copyright (C) 1998 - 2019 Cygwin Authors

$ ssh -V
OpenSSH_8.1p1, OpenSSL 1.1.1d  10 Sep 2019

$ pacman -Qi openssh
Name            : openssh
Version         : 8.1p1-1
Description     : Free version of the SSH connectivity tools
Architecture    : i686
URL             : https://www.openssh.com/portable.html
Licenses        : custom:BSD
Groups          : net-utils
Provides        : None
Depends On      : heimdal  libedit  libcrypt  openssl
Optional Deps   : None
Required By     : sshpass
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 4.55 MiB
Packager        : Alexey Pavlov <[email protected]>
Build Date      : Mon, Oct 14, 2019 1:12:28 AM
Install Date    : Thu, Oct 24, 2019 8:38:48 PM
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

ssh未指定远程命令运行时会出现以下错误:

mm_send_fd: sendmsg(2): Broken pipe
mux_client_request_session: send fds failed

指定远程命令后,错误不会发生。

相关内容