如何使本地主机隧道在长时间闲置后不会过期?

如何使本地主机隧道在长时间闲置后不会过期?

目前我正在尝试配置一个隧道以使其保持活动状态。ssh.localhost.运行空转一段时间后。

我做了一些研究,发现这种类型的〜/.ssh /配置文件如下:

Host *
     ServerAliveInterval 60
     ServerAliveCountMax 5

但过了一会儿(通常 1 小时)PuTTY 会响应“服务器主机密钥的签名无效。”并且旧隧道终止,我必须手动创建新隧道,我仍然可以使用旧密钥,但隧道链接(域)不同。

https://i.stack.imgur.com/aN4g1.png

我的问题:

有什么方法可以使我保持此隧道有效(永不过期)或有什么方法可以解决“来自服务器主机密钥的签名无效”的问题?

答案1

这不是空闲到期 - 响应是由定期重新握手大多数 SSH 客户端和服务器每隔几个小时就会启动一次以交换新密钥。该过程与初始连接期间发生的情况非常相似,包括重新验证服务器的“主机密钥”(作为副作用,而不是目标),显然您的服务器正在错误地进行重新握手。

换句话说,这是您的隧道使用的自定义 SSH 服务器软件的问题。(不过,首先请确保您拥有最新版本的 PuTTY(即 0.77),以防它恰好是客户端错误。)

PuTTY 允许您在“连接 > SSH > Kex”中调整或禁用密钥重新交换参数。默认时间间隔为 60 分钟,默认数据限制为传输 1 GB – PuTTY 每次都会启动重新密钥任何一个达到这些限制。

使用现代密码,您可以安全地增加重新密钥周期(每小时重新密钥适用于古老的 64 位甚至 56 位密码),例如,基于时间的重新密钥可以设置为一周甚至完全禁用,而基于数据的重新密钥也可以设置为1024GB或禁用。

然而,这只能调整客户端发起的重新密钥 - 它不能阻止服务器请求重新密钥。

最后,~/.ssh/config 适用于 OpenSSH – PuTTY 不会读取它。PuTTY 中存在相同的设置,但必须通过其自己的设置屏幕进行配置。

相关内容