0

0

LinuxSSH安全怎么提升_操作步骤详解提升实战能力【技巧】

冷炫風刃

冷炫風刃

发布时间:2025-12-19 22:41:02

|

646人浏览过

|

来源于php中文网

原创

Linux SSH安全提升聚焦四大关键动作:禁用密码登录启用密钥认证(ed25519优先)、禁止root直连并限制AllowUsers、修改端口配合防火墙精准放行、启用fail2ban及加固协议算法;建议按序实施并逐项验证。

linuxssh安全怎么提升_操作步骤详解提升实战能力【技巧】

Linux SSH 安全提升不是靠堆配置,而是聚焦几个关键动作:关掉高危入口、换掉弱认证方式、加一层访问控制。下面这些操作在主流发行版(Ubuntu 22.04+/CentOS 8+/RHEL 9+)上均可直接执行,每一步都有明确目的和验证方法。

禁用密码登录,只用密钥认证

这是最有效的单步加固——暴力破解几乎立刻失效。前提是已配好密钥且能稳定登录。

  • 本地生成强密钥:ssh-keygen -t ed25519 -C "admin@prod"(优先选 ed25519,比 RSA 更快更安全)
  • 上传公钥到服务器:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip
  • 登录服务器后,编辑 /etc/ssh/sshd_config,确认以下两行:
    PubkeyAuthentication yes
    PasswordAuthentication no
  • 重启服务:sudo systemctl restart sshd
  • ⚠️ 操作前务必新开一个终端,用密钥成功登录一次再关闭旧连接,避免锁死

禁止 root 直接登录 + 限制可登录用户

消除最高权限账户暴露面,同时缩小攻击目标范围。

  • /etc/ssh/sshd_config 中设置:
    PermitRootLogin no
    AllowUsers deploy admin backup(只写你真正需要 SSH 的用户名,多个空格分隔)
  • 如需按组限制,可用:AllowGroups ssh-users,然后用 sudo usermod -aG ssh-users username 加入用户
  • 改完立即生效,无需重启,但新连接才受控;已有 root 会话不受影响

端口 + 配合防火墙精准放行

不为“防高手”,只为过滤掉 99% 的自动化扫描流量——实测日志中无效尝试下降两个数量级。

Artbreeder
Artbreeder

创建令人惊叹的插画和艺术

下载
  • 修改端口(例如改为 5678):Port 5678(写在 sshd_config 顶部或单独一行)
  • 防火墙同步更新:
    Ubuntu:sudo ufw allow 5678/tcp && sudo ufw deny 22/tcp
    RHEL/CentOS:sudo firewall-cmd --permanent --add-port=5678/tcp && sudo firewall-cmd --reload
  • SELinux 用户额外执行:sudo semanage port -a -t ssh_port_t -p tcp 5678
  • 测试连接:ssh -p 5678 user@server_ip

启用失败锁定 + 协议与算法加固

堵住暴力破解最后一道缝隙,并淘汰已知有漏洞的加密组件。

  • sshd_config 中添加或修改:
    Protocol 2
    MaxAuthTries 3
    LoginGraceTime 45
    Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
    MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
  • 装 fail2ban(自动封 IP):sudo apt install fail2bansudo yum install fail2ban
  • 启用默认 jail:sudo systemctl enable --now fail2ban,它会自动监控 /var/log/auth.log 并封禁多次失败的 IP

基本上就这些。不需要全部一步到位,建议按顺序做:先密钥 → 再禁 root 和限用户 → 接着改端口+防火墙 → 最后加 fail2ban 和算法加固。每做完一项,用另一台机器测试连接,留好应急回滚路径(比如 console 访问或云平台 VNC)。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

388

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

571

2023.08.10

console接口是干嘛的
console接口是干嘛的

console接口是一种用于在计算机命令行或浏览器开发工具中输出信息的工具,提供了一种简单的方式来记录和查看应用程序的输出结果和调试信息。本专题为大家提供console接口相关的各种文章、以及下载和课程。

411

2023.08.08

console.log是什么
console.log是什么

console.log 是 javascript 函数,用于在浏览器控制台中输出信息,便于调试和故障排除。想了解更多console.log的相关内容,可以阅读本专题下面的文章。

487

2024.05.29

页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

400

2023.08.14

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1348

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

701

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

36

2026.01.14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.1万人学习

Git 教程
Git 教程

共21课时 | 2.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号