服务器测评网
我们一直在努力

Linux的SSH设置密码,如何安全配置?

Linux系统SSH密码设置详解

SSH(Secure Shell)作为Linux系统远程管理的核心工具,其安全性直接关系到整个系统的稳定运行,密码认证作为SSH最基础的认证方式之一,其设置与管理需要遵循规范的操作流程,本文将从密码策略配置、SSH服务修改、密钥对辅助以及安全加固四个方面,详细阐述Linux系统中SSH密码的设置方法与最佳实践。

Linux的SSH设置密码,如何安全配置?

密码策略配置:构建坚固的第一道防线

在设置SSH密码前,首先需要确保系统整体的密码策略足够安全,通过修改/etc/login.defs/etc/security/pwquality.conf文件,可以强制用户设置高强度密码。

/etc/login.defs文件中,PASS_MIN_LEN参数定义了密码最小长度,建议设置为至少12位;PASS_MAX_DAYS控制密码有效期,避免长期使用相同密码,而在/etc/security/pwquality.conf中,可通过以下参数细化密码复杂度要求:

  • minlen=12:密码最小长度12位
  • minclass=3:必须包含数字、大小写字母、特殊字符中的至少3类
  • reject_username:密码中禁止包含用户名

执行passwd命令修改用户密码时,系统会自动根据这些策略进行校验,若需为特定用户设置独立策略,可使用chage命令,例如chage -M 90 username将密码有效期设为90天。

SSH服务配置:精准控制密码认证

SSH服务的密码认证行为由/etc/ssh/sshd_config文件定义,默认情况下,PasswordAuthentication参数为yes,允许密码登录,为提升安全性,需对该参数进行精细化调整。

  1. 启用或禁用密码认证
    编辑sshd_config文件,找到PasswordAuthentication行,根据需求设置为yesno,若仅允许密钥对登录,可设置为no,此时需确保已配置正确的公钥认证。

  2. 限制尝试次数
    添加MaxAuthTries 3参数,限制每个连接的最大认证尝试次数为3次,有效防止暴力破解。

    Linux的SSH设置密码,如何安全配置?

  3. 禁用root直接登录
    设置PermitRootLogin no,禁止root用户通过SSH直接登录,需先切换至普通用户再提权,降低权限泄露风险。

  4. 应用配置并重启服务
    保存文件后,执行systemctl restart sshdservice sshd restart使配置生效。

密钥对辅助:实现双因素认证

在密码认证基础上,结合SSH密钥对可构建更安全的认证体系,生成密钥对后,将公钥(~/.ssh/id_rsa.pub追加至目标服务器的~/.ssh/authorized_keys文件中,并设置权限为600,可通过PubkeyAuthentication yes启用密钥认证,与密码认证形成双重验证。

若需强制要求用户同时提供密码和密钥,可在sshd_config中设置ChallengeResponseAuthentication yes并启用PAM认证,实现双因素认证(2FA),结合Google Authenticator,用户需输入动态口令才能完成密码认证。

安全加固:动态防御与日志审计

SSH密码的安全管理不仅需要静态配置,还需结合动态监控与日志分析。

  1. 使用fail2ban防暴力破解
    安装fail2ban后,创建/etc/fail2ban/jail.local文件,配置如下:

    Linux的SSH设置密码,如何安全配置?

    [sshd]  
    enabled = true  
    port = 22  
    maxretry = 3  
    bantime = 3600  

    该配置将在3次失败尝试后封禁IP地址1小时,有效抵御自动化攻击。

  2. 定期审计SSH日志
    SSH日志默认记录在/var/log/auth.log(Debian/Ubuntu)或/var/log/secure(CentOS/RHEL),通过分析Failed password等关键词,可及时发现异常登录行为,使用grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr命令,可统计高频失败IP并采取针对性措施。

  3. 定期更换密码
    对于必须使用密码认证的场景,建议通过chage -d 0 username强制用户在下次登录时修改密码,并配合/etc/cron.monthly脚本实现定期批量提醒。

Linux SSH密码的安全设置是一个系统工程,需从密码策略、服务配置、多因素认证到动态监控形成闭环管理,在实际操作中,应遵循“最小权限原则”和“深度防御理念”,在保证便捷性的同时最大限度降低安全风险,对于生产环境,建议优先采用密钥对认证,将密码认证作为备用方案,并辅以自动化工具实现持续的安全加固。

赞(0)
未经允许不得转载:好主机测评网 » Linux的SSH设置密码,如何安全配置?