如何确定我的 ssh 服务器支持的 MAC、密码、密钥长度和 KexAlogrithms?
我需要为外部安全审计创建一个列表。我正在寻找类似于的东西openssl s_client -connect example.com:443 -showcerts
。根据我的研究,ssh
使用中列出的默认密码man sshd_config
。但是我需要一个可以在脚本中使用的解决方案,并且。我需要在这里纠正自己:您可以man sshd_config
不列出有关密钥长度的信息ServerKeyBits
在中指定sshd_config
。
我猜这ssh -vv localhost &> ssh_connection_specs.out
会返回我需要的信息,但我不确定列出的密码是客户端还是服务器支持的密码。另外,我不确定如何在脚本中运行这个非交互式脚本。
有没有方便的方法来获取SSH
连接信息?
答案1
你的问题忽略了几点:
- 你的 openssh 版本是什么?不同版本之间可能会有一点不同。
ServerKeyBits
是协议版本 1 的选项,希望您已禁用它!
支持的密码、MAC 和 KexAlgorithms 始终在手册中可用,并且与密钥长度没有任何共同之处。
已启用正如您所指出的,密码、MAC 和 KexAlgorithms 是使用连接提供的。但它们也可以通过其他方式实现,例如使用sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
要获取服务器密钥的密钥长度,您可以使用 ssh-keygen:ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
但是您可能还需要在密钥交换期间提供和使用的模数大小,但这实际上取决于密钥交换方法,但它也应该是从调试输出中可读的ssh -vvv host
。
答案2
如何确定我的 ssh 服务器支持的 MAC、密码、密钥长度和 KexAlogrithms?
答案似乎是https://superuser.com/a/1219759/173408也是对你的问题的回答。它只用一行就可以:
nmap --script ssh2-enum-algos -sV -p 22 1.2.3.4
以下是当前 SSH 版本的普通 Debian 9.4 机器上的输出:
于 2018-05-22 13:40 CEST 启动 Nmap 7.01 ( https://nmap.org ) 1.2.3.4 版 Nmap 扫描报告 主机已启动(延迟时间为 0.00024 秒)。 港口国服务版本 22/tcp 打开 ssh OpenSSH 7.4p1 Debian 10+deb9u3(协议 2.0) | ssh2-枚举算法: | kex_算法: (10) | curve25519-sha256 | [电子邮件保护] | ecdh-sha2-nistp256 | ecdh-sha2-nistp384 | ecdh-sha2-nistp521 | diffie-hellman-group-exchange-sha256 | diffie-hellman-group16-sha512 | diffie-hellman-group18-sha512 | diffie-hellman-group14-sha256 | diffie-hellman-group14-sha1 | 服务器主机密钥算法: (5) | SSH-RSA | rsa-sha2-512 | rsa-sha2-256 | ecdsa-sha2-nistp256 | ssh-ed25519 | 加密算法: (6) | [电子邮件保护] | aes128-ctr | aes192-ctr | aes256-ctr | [电子邮件保护] | [电子邮件保护] | mac_算法: (10) | [电子邮件保护] | [电子邮件保护] | [电子邮件保护] | [电子邮件保护] | [电子邮件保护] | [电子邮件保护] | [电子邮件保护] | hmac-sha2-256 | hmac-sha2-512 | hmac-sha1 | 压缩算法: (2) | 无 |_ [电子邮件保护] 服务信息:操作系统:Linux;CPE:cpe:/o:linux:linux_kernel 服务检测已完成。如有任何错误结果,请报告至 https://nmap.org/submit/ 。 Nmap 完成:在 0.52 秒内扫描了 1 个 IP 地址(1 个主机启动)