如何确定我的 ssh 服务器支持的 MAC、密码、密钥长度和 KexAlogrithms?
我需要为外部安全审计创建一个列表。我正在寻找类似的东西openssl s_client -connect example.com:443 -showcerts
。根据我的研究,ssh
使用中列出的默认密码man sshd_config
。但是,我需要一个可以在脚本中使用的解决方案,并且的信息。我需要在这里更正自己:您可以man sshd_config
不列出有关 key lengthServerKeyBits
在sshd_config
.
我想这会ssh -vv localhost &> ssh_connection_specs.out
返回我需要的信息,但我不确定列出的密码是客户端还是服务器支持的密码。另外我不确定如何在脚本中运行这个非交互式的。
有没有方便的方法来获取SSH
连接信息?
看起来https://superuser.com/a/1219759/173408上的答案也是您问题的答案。它适合一行:
这是具有当前 SSH 版本的普通 Debian 9.4 机器上的输出:
您在问题中遗漏了几点:
ServerKeyBits
是协议版本 1 的选项,您希望禁用它!支持的密码、MAC 和 KexAlgorithms 始终以手册形式提供,这与密钥长度没有任何共同之处。
正如您所指出的,启用的 Chiphers、MAC 和 KexAlgorithms 是使用连接提供的。但它们也可以通过其他方式获得,例如使用
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
要获取服务器密钥的密钥长度,可以使用 ssh-keygen:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
但是您可能还需要在密钥交换期间提供和使用的模数大小,但这实际上取决于密钥交换方法,但它也应该可以从调试输出中读取
ssh -vvv host
。