我注意到 ubuntu 20.04 的 ssh-keygen 缺少生成 Diffie-Hellman 参数的选项。这通常是 SSH 强化的一部分。有人知道它为什么消失了吗?
答案1
提出的理由是释放ssh-keygen
命令的几个选项字母。这已合并到附加-O
选项中,并修改了选项的使用-M
,从而破坏了与以前版本的兼容性。这是在 2019 年 12 月 30 日在这次提交:
上游:删除模数选项的单字母标志
将所有模数生成选项移至 -O 标志下。
释放七个单字母标志。
注意:此更改破坏了现有的 ssh-keygen 命令行语法,这些语法与模块相关。幸运的是,很少有人使用这些语法。
反馈并同意 markus@
OpenBSD 提交 ID:d498f3eaf28128484826a4fcb343612764927935
较新的语法在较新的(焦点)中描述ssh-keygen
手册页如下模数生成:
使用选项生成素数
-M generate
。可以通过选项指定素数的所需长度-O bits
。例如:# ssh-keygen -M generate -O bits=2048 moduli-2048.candidates
[...]
# ssh-keygen -M screen -f moduli-2048.candidates moduli-2048
答案2
这不是 ubuntu 的问题,它实际上是 OpenSSH 的一部分。diffie-hellman 算法非常弱,因此他们在较新的版本中将其保留下来,以支持更强大的算法。
如果您需要与需要 diffie-hellman 的系统进行通信,您可以执行以下操作:
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@legacyhost
或者你可以用任何传统算法代替 diffie-hellman