Linux SSH安全高效操作,你掌握了吗?

安装SSH服务

检查是否已安装

systemctl status sshd   # 查看SSH服务状态

若显示Unit sshd.service could not be found,则需安装。

安装OpenSSH服务器

  • Debian/Ubuntu
    sudo apt update && sudo apt install openssh-server -y
  • CentOS/RHEL
    sudo yum install openssh-server -y

启动并设置开机自启

sudo systemctl start sshd        # 启动服务
sudo systemctl enable sshd       # 开机自启

基础配置

配置文件路径:/etc/ssh/sshd_config

关键参数修改(需root权限):

sudo nano /etc/ssh/sshd_config
  • 修改默认端口(避免暴力破解):
    Port 2222   # 将22改为自定义端口(如2222)
  • 禁止root远程登录(增强安全):
    PermitRootLogin no
  • 限制登录用户
    AllowUsers alice bob   # 仅允许alice和bob登录
  • 启用密钥登录(推荐):
    PasswordAuthentication no      # 关闭密码登录
    PubkeyAuthentication yes       # 启用密钥登录

保存后重启服务:

sudo systemctl restart sshd

防火墙放行SSH

开放自定义端口(以2222为例)

  • firewalld(CentOS/RHEL):
    sudo firewall-cmd --permanent --add-port=2222/tcp
    sudo firewall-cmd --reload
  • ufw(Ubuntu):
    sudo ufw allow 2222/tcp
    sudo ufw reload

验证端口监听:

ss -tunlp | grep sshd

输出应显示LISTEN状态(如0.0.0:2222)。


使用密钥登录(更安全)

本地生成密钥对(在客户端操作):

ssh-keygen -t ed25519   # 生成ED25519密钥(推荐)

将公钥id_ed25519.pub复制到服务器:

ssh-copy-id -p 2222 user@server_ip   # 替换端口和IP

测试登录:

ssh -p 2222 user@server_ip   # 无需密码即成功

安全加固建议

  1. Fail2Ban防护:自动封禁暴力破解IP
    sudo apt install fail2ban    # Debian/Ubuntu
    sudo yum install fail2ban    # CentOS/RHEL
  2. 禁用弱加密算法:在sshd_config末尾添加:
    KexAlgorithms curve25519-sha256
    Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
    MACs hmac-sha2-512-etm@openssh.com
  3. 定期更新
    sudo apt upgrade openssh-server   # Debian/Ubuntu
    sudo yum update openssh-server    # CentOS/RHEL

常见问题解决

  • 连接超时
    检查防火墙规则、云服务商安全组是否放行端口。
  • 权限错误
    确保~/.ssh目录权限为700,密钥文件为600:

    chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
  • 服务无法启动
    检查配置语法:sudo sshd -t

SSH是Linux系统管理的安全基石,通过修改默认端口、强制密钥登录、结合Fail2Ban防护,可显著提升安全性,定期审计日志(/var/log/auth.log)和更新系统是长期维护的关键,对于生产环境,建议参考NIST或CIS安全基准进一步加固。

引用说明

  • OpenSSH官方文档:https://www.openssh.com/manual.html
  • Linux man pages(man sshd_config
  • CIS安全指南:https://www.cisecurity.org/benchmark/linux

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9965.html

(0)
酷番叔酷番叔
上一篇 2025年8月8日 07:38
下一篇 2025年8月8日 07:58

相关推荐

  • Linux中如何重启网络链接?命令方法与操作步骤详解?

    在Linux系统中,“链接”一词可能涵盖多种场景,包括网络链接(有线/无线)、文件系统中的软链接/硬链接,以及服务管理中的符号链接等,不同类型的链接重启方法各异,需根据具体场景选择合适操作,本文将详细讲解各类链接的重启方法及注意事项,网络链接重启(最常见场景)网络链接的重启是Linux系统维护中的高频操作,主要……

    2025年9月17日
    9200
  • Linux中如何用evince命令查看PDF文档?

    Evince是Linux操作系统下一款轻量级且功能全面的文档查看器,作为GNOME桌面环境的默认组件,它主要用于打开和浏览PDF、PostScript、DjVu、XPS、TIFF等多种格式的文档,其界面简洁、操作直观,同时支持丰富的命令行参数,方便用户通过终端进行自动化或个性化操作,本文将详细介绍Evince的……

    2025年8月24日
    11800
  • 如何用Windows远程连接Linux?详细操作步骤与方法说明

    在Windows系统中远程连接Linux服务器或主机是日常运维、开发中常见的操作,主要通过SSH(Secure Shell)协议实现安全连接,也可结合图形化工具实现远程桌面,本文将详细介绍具体操作步骤、常用工具及问题解决方法,准备工作在开始远程连接前,需确保Linux和Windows两端满足以下条件:Linux……

    2025年9月30日
    8700
  • 关闭ACPI竟有隐藏风险?

    在Linux系统中,ACPI(高级配置与电源管理接口)是管理硬件电源、温度监控和系统事件的核心组件,虽然它对于现代计算机至关重要,但在某些情况下(如硬件兼容性问题、系统崩溃或电源管理故障),用户可能需要临时或永久关闭ACPI,以下是详细的操作方法和注意事项:常见场景包括:硬件兼容性问题:旧硬件或非标准设备可能因……

    2025年7月15日
    14300
  • Linux系统如何连接MySQL数据库?具体操作步骤有哪些?

    在Linux系统中连接MySQL数据库是运维和开发中的常见需求,无论是进行数据库管理、数据查询还是应用程序开发,掌握正确的连接方法都至关重要,本文将详细介绍Linux环境下连接MySQL的多种方式,包括准备工作、命令行连接、图形界面工具连接以及编程语言连接,并附常见问题解决方案,连接前的准备工作在尝试连接MyS……

    2025年9月28日
    27800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信