我经常从 Windows SSH 到同一个 Linux 服务器,并使用该服务器设置 SSH 隧道。身份验证是基于密码的,这是公司政策规定的,所以我无法更改。多次提供相同的密码是一场噩梦。
我有阅读有关处理该问题的信息通过保持 SSH 连接处于活动状态。该方案用于 Linux 到 Linux 的连接,需要更新~/.ssh/config
文件
Host *
ControlPath ~/.ssh/%C.sock
ControlMaster auto
ControlPersist 10m
在 Windows 上,我可以为 OpenSSH 定义类似的文件。但是,当我设置它时,我开始得到
getsockname 失败:不是套接字
我读了ControlPath
Windows 不支持. 如何在 Windows 上保持 SSH 连接处于活动状态?
答案1
多次提供相同的密码是一场噩梦。
在 Linux 中sshpass
有帮助。我不知道你是否可以在 Windows 中使用它。继续阅读。
解决方法:只连接到交互式 shell 一次,提供一次密码。
可以在连接时设置预先已知的端口转发。
稍后可以交互方式添加或删除端口转发。使用转义符,默认情况下它是紧跟在后面的波浪符号Enter。按Enter~C(大写 C,因此通常实际上是Shift+ c),输入
-h
Enter;您应该会看到命令概述,它们允许添加和删除端口转发。注意:- 查看手动的了解详情。
- 你需要
EnableEscapeCommandline yes
在您的ssh_config
(~/.ssh/config
)中,这个功能才能~C正常工作。 - 波浪号仅在 之后被识别为转义字符Enter。请记住,Enter无论如何这都会到达远端。
设置
ServerAliveInterval
和ServerAliveCountMax
这样您在空闲时就不会断开连接。如果您需要多个终端,请在远程端使用
tmux
或。screen