如何列出我的 ssh 服务器支持的 MAC、密码和 KexAlogrithms?

如何列出我的 ssh 服务器支持的 MAC、密码和 KexAlogrithms?

如何确定我的 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 个主机启动)

相关内容