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系统中,终端进程是用户与系统交互的核心载体,捕获终端进程通常指记录、监控或控制终端会话的输入输出,常见于调试、审计、会话记录或远程协作场景,本文将详细说明多种捕获终端进程的方法,涵盖基础命令、系统工具及高级技术,并对比其适用场景与优缺点,基础方法:使用script命令记录终端会话script是Lin……

    2025年8月24日
    6000
  • 如何直接挂载ISO免解压?

    在Linux系统中,ISO文件是光盘镜像的常见格式,通常用于系统安装或数据存储,虽然ISO并非传统压缩包,但用户常需提取其内容,以下是专业、安全的解压方法,适用于主流Linux发行版(如Ubuntu、Fedora、Debian):原理:将ISO虚拟为光驱访问,避免占用额外空间,步骤:创建挂载点目录: sudo……

    2025年7月29日
    7000
  • cp命令复制文件时如何避免覆盖?

    在Linux系统中拷贝目录文件是日常管理中的常见任务,掌握多种方法能提升效率并适应不同场景,以下是详细的操作指南,涵盖基础命令、高级工具及注意事项,所有命令均经过测试,适用于主流Linux发行版(如Ubuntu、CentOS),cp(copy)是Linux最基础的拷贝命令,适用于本地目录复制,核心语法:cp……

    2025年8月9日
    6000
  • Linux进程优先级如何调整优化?

    理解优先级指标Nice值用户可调整的范围:-20(最高优先级)到19(最低优先级)默认值:0(新进程继承父进程的nice值)PR值(Priority)内核维护的实际优先级(0-139),其中0-99用于实时进程Nice值影响PR值:PR = 20 + Nice(普通进程)示例:nice=-20 → PR=0(最……

    2025年7月18日
    8500
  • Linux系统如何正确加载磁盘设备?

    Linux系统加载磁盘是一个涉及硬件识别、分区管理、文件系统创建及挂载配置的完整流程,其核心目的是将物理磁盘设备转化为系统可读写的存储单元,整个过程从硬件接入开始,经过内核识别、分区规划、格式化处理,最终通过挂载操作使磁盘数据在文件系统中可访问,同时支持开机自动加载,确保存储资源的持续可用,硬件连接与系统识别L……

    2025年10月5日
    3400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信