我知道在 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
指定远程命令后,错误不会发生。