目前我正在尝试配置一个隧道以使其保持活动状态。ssh.localhost.运行空转一段时间后。
我做了一些研究,发现这种类型的〜/.ssh /配置文件如下:
Host *
ServerAliveInterval 60
ServerAliveCountMax 5
但过了一会儿(通常 1 小时)PuTTY 会响应“服务器主机密钥的签名无效。”并且旧隧道终止,我必须手动创建新隧道,我仍然可以使用旧密钥,但隧道链接(域)不同。
我的问题:
有什么方法可以使我保持此隧道有效(永不过期)或有什么方法可以解决“来自服务器主机密钥的签名无效”的问题?
答案1
这不是空闲到期 - 响应是由定期重新握手大多数 SSH 客户端和服务器每隔几个小时就会启动一次以交换新密钥。该过程与初始连接期间发生的情况非常相似,包括重新验证服务器的“主机密钥”(作为副作用,而不是目标),显然您的服务器正在错误地进行重新握手。
换句话说,这是您的隧道使用的自定义 SSH 服务器软件的问题。(不过,首先请确保您拥有最新版本的 PuTTY(即 0.77),以防它恰好是客户端错误。)
PuTTY 允许您在“连接 > SSH > Kex”中调整或禁用密钥重新交换参数。默认时间间隔为 60 分钟,默认数据限制为传输 1 GB – PuTTY 每次都会启动重新密钥任何一个达到这些限制。
使用现代密码,您可以安全地增加重新密钥周期(每小时重新密钥适用于古老的 64 位甚至 56 位密码),例如,基于时间的重新密钥可以设置为一周甚至完全禁用,而基于数据的重新密钥也可以设置为1024GB
或禁用。
然而,这只能调整客户端发起的重新密钥 - 它不能阻止服务器请求重新密钥。
最后,~/.ssh/config 适用于 OpenSSH – PuTTY 不会读取它。PuTTY 中存在相同的设置,但必须通过其自己的设置屏幕进行配置。