我不熟悉测试厨房工具的深度,因为我通常使用它们进行简单的食谱测试,并且通常不会遇到问题。
目前,我正在尝试测试食谱的更新,但是当我运行“厨房测试”时,我看到收敛正在发生,并且似乎完成得很好。但是当它尝试在收敛后运行 Inspec 测试时,我收到错误:
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>> Failed to complete #verify action: [Transport error, can't connect to 'ssh' backend: SSH command failed (host key algorithm mismatch for signature 'rsa-sha2-256' != 'ssh-rsa')] on default-rhel-9
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration
如果我尝试运行“厨房登录”,它工作得很好,我认为这表明厨房工具使用的关键算法是完全有效的。
我尝试这样做:
kitchen create
然后,在另一个 shell 中,
kitchen login
登录后,我运行:
sshd -T | grep kex
返回以下内容:
kexalgorithms curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512
kitchen converge
运行相同的命令后返回:
kexalgorithms [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256
作为我们安全合规性的一部分,我们的食谱中删除了非安全算法。过去在 RHEL6-8、CentOS 7-8 或 AmazonLinux2 和 2023 上没有发生过此错误。当我开始使用 RHEL9 进行测试时,才开始发生此错误。
我很感激任何能帮助我指明正确方向的事情。
事实证明,我的 sshd_config 模板中有一行如下:
在我开始使用 RHEL9 进行测试之前,这并不是一个问题。在 RHEL9 中,我必须添加另一个防护措施以防止此行插入到 RHEL9 系统上的 sshd_config 文件中,因此现在该块如下所示:
展望未来,我想我应该调查一下为什么我添加了原始块......这是几年前的事情,现在。可能有必要在 RHEL9 上执行类似的操作,但现在我将这样保留。