当前位置: 首页 > backend >正文

查看linux 系统中 支持哪些 ssh negotiate 算法

在 Linux 系统中,要查看 SSH 服务端(sshd)或客户端(ssh)支持的密钥交换(Key Exchange,KEX)、加密算法、MAC 算法等协商参数,可以通过以下方法进行检测:


1. 查看 SSH 服务端(sshd)支持的算法

方法 1:通过 sshd -T 查看当前配置
sudo sshd -T | grep -E "kexalgorithms|ciphers|macs"
  • 输出示例
    kexalgorithms curve25519-sha256,ecdh-sha2-nistp256
    ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
    macs umac-128-etm@openssh.com
    
  • 说明
    这会显示当前 sshd 配置中启用的算法列表(实际支持的算法可能更多)。
方法 2:通过 OpenSSL 检测(需 nmap
nmap --script ssh2-enum-algos <服务器IP>
  • 输出示例
    | ssh2-enum-algos: 
    |   kex_algorithms: (9)
    |       curve25519-sha256
    |       ecdh-sha2-nistp256
    |   encryption_algorithms: (6)
    |       chacha20-poly1305@openssh.com
    |   mac_algorithms: (10)
    |       umac-128-etm@openssh.com
    

2. 查看 SSH 客户端(ssh)支持的算法

方法 1:通过 ssh -Q 查询
# 查看所有支持的密钥交换算法(KEX)
ssh -Q kex# 查看支持的加密算法
ssh -Q cipher# 查看支持的MAC算法
ssh -Q mac# 查看支持的签名算法(主机密钥类型)
ssh -Q sig
  • 输出示例
    curve25519-sha256
    ecdh-sha2-nistp256
    diffie-hellman-group14-sha256
    
方法 2:通过 ssh -vvv 调试连接
ssh -vvv user@example.com

在输出的调试信息中搜索 kex: algorithmencryption: 等关键词,可以看到客户端和服务端协商的实际算法。


3. 查看 OpenSSH 的默认算法列表

OpenSSH 的默认算法优先级定义在源码中,也可以通过以下文件查看(路径可能因发行版不同):

# 查看服务端默认配置
cat /etc/ssh/sshd_config | grep -i kex# 查看客户端默认配置
cat /etc/ssh/ssh_config | grep -i kex

4. 手动测试特定算法是否支持

可以通过 -o 参数强制指定算法进行测试:

ssh -o KexAlgorithms=ecdh-sha2-nistp256 user@example.com
  • 如果连接成功,说明服务端支持该算法;
  • 如果报错 no matching key exchange method found,则表示不支持。

关键算法类型说明

算法类型作用常见值示例
kex密钥交换算法curve25519-sha256, ecdh-sha2-nistp256
cipher加密算法aes256-gcm, chacha20-poly1305
mac完整性校验算法hmac-sha2-256, umac-128
hostkey主机密钥类型ssh-ed25519, ecdsa-sha2-nistp256

5. 升级/修改支持的算法

如果需要启用或禁用特定算法,可以编辑 /etc/ssh/sshd_config

# 示例:启用更强的KEX算法
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp256# 禁用不安全的算法
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-256

修改后需重启服务:

sudo systemctl restart sshd

总结

  • 服务端检测sshd -Tnmap --script ssh2-enum-algos
  • 客户端检测ssh -Q kex/cipher/mac
  • 调试连接ssh -vvv + 分析日志
  • 强制测试ssh -o KexAlgorithms=...

通过以上方法,可以全面掌握系统支持的 SSH 协商算法,并根据安全需求进行配置调整。

http://www.xdnf.cn/news/14891.html

相关文章:

  • webpack+vite前端构建工具 -11实战中的配置技巧
  • 后端快捷代码
  • Redis服务器
  • JVM的位置和JVM的结构体系
  • ASP.NET 安装使用教程
  • 人工智能-基础篇-18-什么是RAG(检索增强生成:知识库+向量化技术+大语言模型LLM整合的技术框架)
  • Spark SQL架构及高级用法
  • Zama 机密区块链协议Litepaper
  • Android Input 系列专题【事件的读取与分发】
  • 408第三季part2 - 计算机网络 - 计算机网络分层结构
  • MySQL——9、事务管理
  • Linux安装java后没法运行
  • StarRocks × Tableau 连接器完整使用指南 | 高效数据分析从连接开始
  • 智能监控算法助力工厂高温高效管理
  • Windows内核并发优化
  • 使用SSH隧道连接远程主机
  • H3C WA6322 FitAP切换为云AP或
  • 不依赖框架,如何用 JS 实现一个完整的前端路由系统
  • 快速掌握Python编程基础
  • Day51 复习日-模型改进
  • 免费PDF处理软件,支持多种操作
  • 深度学习笔记29-RNN实现阿尔茨海默病诊断(Pytorch)
  • 因果语言模型、自回归语言模型、仅解码器语言模型都是同一类模型
  • VS CodeC51 单片机开发环境搭建
  • Django+DRF 实战:从异常捕获到自定义错误信息
  • 从入门到精通:数据库全攻略
  • Jenkins-Publish HTML reports插件
  • 技术与情感交织的一生 (九)
  • Python 的内置函数 reversed
  • WPS中配置MathType教程