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


19

如何确定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连接信息的便捷方法吗?


3
事实证明,sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"@ Jakuje的建议仅适用于RHEL7主机,不适用于RHEL6。我结束了使用nmap --script SSH2-hostkey localhostnmap --script ssh-hostkey localhost
亨里克Pingel

ssh -vv将支持的功能作为客户端输出到服务器(ctos),以及将服务器输出到客户端(stoc)。但是,这些输出似乎仅限于双方的支持,这使得它们对安全审核的用处不大。
Moshe

Answers:


18

您错过了几点问题:

  • 您的openssh版本是什么?在版本上可能有所不同。
  • 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

但是您可能还希望在密钥交换期间提供和使用的模数大小,但这实际上取决于密钥交换方法,但是它也应该可以从debug输出读取ssh -vvv host


1
谢谢。事实证明,这sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"仅对我的RHEL7主机有效,而对RHEL6不起作用。我结束了使用nmap --script SSH2-hostkey localhostnmap --script ssh-hostkey localhost
亨里克Pingel

1
具有最新的openssh更新的RHEL6主机也应该也进行了修复。
2015年

该死,你是对的。我只检查了过时的VM ...谢谢
Henrik Pingel 2015年

sshd -T将仅提供有关sshd_config文件中配置的密码的信息,而不是二进制文件所支持的确实可以添加的信息
Daniel J.

11

如何确定ssh服务器支持的支持的MAC,密码,密钥长度和KexAlogrithms?

看来/superuser//a/1219759/173408上的答案也是您的问题的答案。它适合一行:

nmap --script ssh2-enum-algos -sV -p 22 1.2.3.4

以下是使用当前SSH版本的普通Debian 9.4计算机上的输出:

在CEST 2018-05-22 13:40启动Nmap 7.01(https://nmap.org)
Nmap扫描报告1.2.3.4
主机已启动(0.00024秒延迟)。
港口国服务版本
22 / tcp open ssh OpenSSH 7.4p1 Debian 10 + deb9u3(协议2.0)
| ssh2-enum-algos:
| kex_algorithms:(10)
| 曲线25519-sha256
| curve25519-sha256@libssh.org
| 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
| server_host_key_algorithms:(5)
| ssh-rsa
| rsa-sha2-512
| rsa-sha2-256
| ecdsa-sha2-nistp256
| ssh-ed25519
| encryption_algorithms:(6)
| chacha20-poly1305@openssh.com
| aes128-ctr
| aes192-ctr
| aes256-ctr
| aes128-gcm@openssh.com
| aes256-gcm@openssh.com
| mac_algorithms:(10)
| umac-64-etm@openssh.com
| umac-128-etm@openssh.com
| hmac-sha2-256-etm@openssh.com
| hmac-sha2-512-etm@openssh.com
| hmac-sha1-etm@openssh.com
| umac-64@openssh.com
| umac-128@openssh.com
| hmac-sha2-256
| hmac-sha2-512
| hmac-sha1
| compression_algorithms:(2)
| 没有
| _ zlib@openssh.com
服务信息:操作系统:Linux;CPE:cpe:/ o:linux:linux_kernel

已执行服务检测。请在https://nmap.org/submit/报告任何不正确的结果。
已完成Nmap:在0.52秒内扫描了1个IP地址(1个主机已启动)

1
我可以PORT STATE SERVICE VERSION 22/tcp filtered ssh通过此命令获得-尽管我可以通过ssh登录到同一台服务器。

您确实使用了命令,还是将其替换1.2.3.4为服务器的IP?
斯特凡·古里康

我使用了服务器的IP。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.