Hub*_*ast 4 configuration sshd
我正在设置一个新的Linux服务器,我正在编辑sshd_config.我将使用协议版本2(无论如何这是默认的):
Protocol 2
Run Code Online (Sandbox Code Playgroud)
但是在默认的配置文件中我也发现了这两行:
KeyRegenerationInterval 3600
ServerKeyBits 768
Run Code Online (Sandbox Code Playgroud)
关于KeyRegenerationInterval的Manpage sshd_config(5)说:
在协议版本1中,短暂的服务器密钥会在这么多秒后自动重新生成(如果已使用).再生的目的是防止通过稍后进入机器并窃取密钥来解密捕获的会话.密钥永远不会存储在任何地方.如果值为0,则永远不会重新生成密钥.默认值为3600(秒).
所以我知道这个参数在SSH1中的作用.但我不使用SSH1.我使用默认版本SSH2,但是联机帮助页没有提供有关KeyRegenerationInterval协议版本2 的影响的信息.在协议版本2中有KeyRegenerationInterval任何影响吗?那怎么样ServerKeyBits?
如果我在设置时将此设置保留在配置文件中会发生什么Protocol 2?当我删除这两行时会发生什么?
如果协议版本设置为2,我猜这两个参数会被忽略.但这只是猜测.从我读到现在到目前为止我无法确定.你知道(不猜)什么样的影响KeyRegenerationInterval,并ServerKeyBits在SSH2?
小智 6
我相信你已经知道了.我只是不想留下没有答案的问题.这些选项(KeyRegenerationInterval和ServerKeyBits)会影响为SSH协议1生成的服务器密钥.如果要求连接遵循协议2,则不必担心这一点.
TL;DR:不,这些选项对 SSH-2 没有影响(并且自 2016 年以来删除了 SSH-1 支持)。
当不确定时,源代码是最好的文档。
如果我们在整个 OpenSSH 源代码中搜索ServerKeyBits和,我们只能在以下位置找到:KeyRegenerationIntervalservconf.c
{ "serverkeybits", sDeprecated, SSHCFG_GLOBAL },
. . .
{ "keyregenerationinterval", sDeprecated, SSHCFG_GLOBAL },
. . .
case sDeprecated:
case sIgnore:
case sUnsupported:
do_log2(opcode == sIgnore ?
SYSLOG_LEVEL_DEBUG2 : SYSLOG_LEVEL_INFO,
"%s line %d: %s option %s", filename, linenum,
opcode == sUnsupported ? "Unsupported" : "Deprecated", arg);
while (arg)
arg = strdelim(&cp);
break;
Run Code Online (Sandbox Code Playgroud)
换句话说,这两个选项都只是打印一条弃用警告,并且没有任何作用。
然后使用责备功能,我们发现这些选项在 2016 年 8 月 23 日的提交c38ea6348中被删除(OpenSSH 7.4p1):
{ "serverkeybits", sDeprecated, SSHCFG_GLOBAL },
. . .
{ "keyregenerationinterval", sDeprecated, SSHCFG_GLOBAL },
. . .
case sDeprecated:
case sIgnore:
case sUnsupported:
do_log2(opcode == sIgnore ?
SYSLOG_LEVEL_DEBUG2 : SYSLOG_LEVEL_INFO,
"%s line %d: %s option %s", filename, linenum,
opcode == sUnsupported ? "Unsupported" : "Deprecated", arg);
while (arg)
arg = strdelim(&cp);
break;
Run Code Online (Sandbox Code Playgroud)
在此之前它们仅用于 SSH-1。例如KeyRegenerationInterval:
{ "keyregenerationinterval", sKeyRegenerationTime, SSHCFG_GLOBAL },
. . .
case sKeyRegenerationTime:
intptr = &options->key_regeneration_time;
goto parse_time;
Run Code Online (Sandbox Code Playgroud)
用于sshd.c/L1442:
if ((options.protocol & SSH_PROTO_1) &&
key_used == 0) {
/* Schedule server key regeneration alarm. */
signal(SIGALRM, key_regeneration_alarm);
alarm(options.key_regeneration_time);
key_used = 1;
}
Run Code Online (Sandbox Code Playgroud)
注意:对于 SSH-2,有更强大的RekeyLimit.
| 归档时间: |
|
| 查看次数: |
4724 次 |
| 最近记录: |