Linux 安全:如何硬化 sshd_config (禁用弱算法 / 协议版本)

发布时间 - 2025-11-21 00:00:00    点击率:
明确禁用SSHv1并限制加密算法可提升安全性:配置Protocol 2,设置安全的KexAlgorithms、Ciphers和Macs,关闭密码认证与root登录,重启sshd服务并验证配置有效性。

SSH 是系统管理中最常用的远程访问工具,但默认配置可能包含不安全的算法和协议版本。通过合理配置 /etc/ssh/sshd_config,可以显著提升 SSH 服务的安全性,防止中间人攻击、暴力破解和已知漏洞利用。

禁用不安全的 SSH 协议版本

SSH 协议有两个主要版本:SSHv1 和 SSHv2。SSHv1 存在严重安全缺陷(如易受中间人攻击),必须禁用。

确保配置中明确只使用 SSHv2:
  • Protocol 2 —— 显式启用协议版本 2 并禁用 v1
注意:某些旧系统默认仍可能允许 Protocol 2,1,务必修改为仅保留 2。

禁用弱加密算法和密钥交换方法

OpenSSH 支持多种加密、密钥交换(KEX)和消息认证码(MAC)算法。部分老旧算法(如 CBC 模式加密、MD5 哈希)已被证明不安全,应主动移除。

推荐在 sshd_config 中显式禁用以下内容:
  • KexAlgorithms —— 限制密钥交换算法,例如:
    KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256
  • Ciphers —— 禁用 CBC 模式,使用更安全的 CTR 或 GCM 模式:
    Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
  • Macs —— 禁用基于 MD5 和 SHA1 的 MAC:
    Macs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com
提示:添加 -etm@openssh.com 后缀的 MAC 算法可提供“加密然后 MAC”保护,增强抗攻击能力。

禁用不安全的身份验证方式

减少攻击面,关闭不必要的登录选项。

  • PubkeyAuthentication yes —— 推荐使用公钥认证
  • PasswordAuthentication no —— 若使用密钥登录,应禁用密码认证
  • PermitEmptyPasswords no —— 防止空密码登录
  • ChallengeResponseAuthentication no —— 禁用交互式响应认证
  • PermitRootLogin no —— 禁止 root 直接登录(建议用普通用户 + sudo)

应用配置并验证更改

修改完成后,必须重启 SSH 服务并测试连接,避免被锁在服务器外。

  • 保存配置后运行:sudo systemctl restart sshd
  • 使用另一终端测试连接,确认新配置有效
  • 可用命令检查当前支持的算法:
    ssh -Q kexssh -Q cipherssh -Q mac
  • 使用扫描工具检测弱点,如:
    nmap --script ssh2-enum-algos target_ip

基本上就这些。定期更新 OpenSSH 版本,并关注官方安全公告,能进一步保障服务安全。配置虽小,却能有效抵御自动化扫描和常见攻击。


# linux  # word  # go  # 工具  # mac  # enum  # 算法  # ssh  # 自动化  # 加密算法  # 不安全  # 重启  # 已被  # 推荐使用  # 却能  # 普通用户  # 最常用  # 移除  # 虽小  # 身份验证 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在香港服务器上快速搭建免备案网站?  网站制作壁纸教程视频,电脑壁纸网站?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  如何在服务器上配置二级域名建站?  Laravel如何实现API资源集合?(Resource Collection教程)  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  微信公众帐号开发教程之图文消息全攻略  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  浅谈javascript alert和confirm的美化  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  node.js报错:Cannot find module 'ejs'的解决办法  如何做网站制作流程,*游戏网站怎么搭建?  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Laravel如何升级到最新版本?(升级指南和步骤)  简单实现Android验证码  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何快速启动建站代理加盟业务?  js实现获取鼠标当前的位置  JS去除重复并统计数量的实现方法  如何用低价快速搭建高质量网站?  在线制作视频网站免费,都有哪些好的动漫网站?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel如何实现模型的全局作用域?(Global Scope示例)  如何快速搭建高效WAP手机网站吸引移动用户?  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  网站制作大概多少钱一个,做一个平台网站大概多少钱?  音响网站制作视频教程,隆霸音响官方网站?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  利用JavaScript实现拖拽改变元素大小  WordPress 子目录安装中正确处理脚本路径的完整指南  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  香港服务器如何优化才能显著提升网站加载速度?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Linux系统命令中screen命令详解  Laravel如何配置任务调度?(Cron Job示例)  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  网站优化排名时,需要考虑哪些问题呢?