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

相关推荐

  • Ubuntu还是Debian?哪个更合适你的需求

    在Linux系统中,Telnet是一种基于TCP/IP协议的远程登录工具,允许用户通过网络连接到其他主机进行操作,但请注意:Telnet传输数据为明文,存在严重安全风险,仅建议在测试或隔离环境中使用,生产环境强烈推荐使用SSH替代,以下是详细操作指南:Telnet客户端使用(连接远程服务)安装Telnet客户端……

    2025年7月1日
    4300
  • Linux编译中.o文件为何不可或缺?

    .o文件的本质作用:.o文件是源代码经编译、汇编后生成的可重定位目标文件(Relocatable Object File),包含:机器指令(二进制代码)全局变量和函数的符号表重定位信息(供链接器调整地址)特点:不可直接执行,需通过链接器与其他.o文件或库合并生成可执行文件,生成.o文件的核心步骤预处理(Prep……

    2025年6月15日
    6100
  • linux 如何执行python脚本

    Linux中,可以使用命令python script.py或`python3 script.

    2025年8月16日
    3300
  • Linux修改文件后,如何正确保存并确保生效?

    在Linux系统中,无论是修改配置文件、编写脚本还是编辑文本,正确保存文件是确保操作生效的关键,由于Linux下有多种编辑方式和工具,不同场景下的保存操作也存在差异,掌握这些方法能有效避免数据丢失或配置不生效的问题,以下将从常用文本编辑器、非交互式命令修改、权限处理及保存后生效操作等方面,详细说明Linux修改……

    2025年9月22日
    2100
  • linux如何停止后台脚本

    Linux 中,可以使用 kill 命令停止后台脚本,例如先

    2025年8月13日
    4000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信