保持 Windows 中的 SSH 连接处于活动状态

dzi*_*iou 6 windows ssh openssh windows-10 ssh-multiplexing

我经常从 Windows ssh 到同一台 Linux 服务器,并使用该服务器设置 SSH 隧道。身份验证是基于密码的,这是由公司政策设置的,所以我无法更改它。多次提供相同的密码是一场噩梦。

读过有关通过保持 SSH 连接处于活动状态来处理该问题的内容。该配方用于 Linux 到 Linux 连接并需要更新~/.ssh/config文件

Host *
  ControlPath    ~/.ssh/%C.sock
  ControlMaster  auto
  ControlPersist 10m    
Run Code Online (Sandbox Code Playgroud)

在 Windows 上,我可以为 OpenSSH 定义类似的文件。然而,当我设置它时,我开始得到

getsockname 失败:不是套接字

我读过ControlPathWindows 上不支持。如何在 Windows 上保持 SSH 连接处于活动状态?

Kam*_*ski 1

多次提供相同的密码是一场噩梦。

在 Linux 中sshpass可以提供帮助。不知道Windows下能不能用。继续阅读。

解决方法:仅连接一次交互式 shell,并提供一次密码。

  • 可以在连接时设置预先知道的端口转发。

  • 稍后可以交互地添加或删除端口转发。使用转义字符,默认情况下它是紧接在 后面的波形符Enter。按Enter~C(大写 C,实际上通常是Shift+ c),输入-h Enter; 您应该看到命令的概述,它们允许添加和删除端口转发。笔记:

    • 详细信息请参阅手册
    • 您需要在( ) 中才能使其EnableEscapeCommandline yes工作。ssh_config~/.ssh/config~C
    • 仅紧接在 后面的波形符才被识别为转义字符Enter。请记住,无论如何,这是Enter到达远程端的。
  • 设置好ServerAliveIntervalServerAliveCountMax这样空闲时就不会断线了

  • 如果您需要多个终端,请在远程端使用tmux或。screen