在Linux系统中配置本地密码登录主要涉及修改SSH服务配置、创建用户及设置密码权限管理等步骤,具体流程如下:
1. 启用密码认证(修改SSH配置)
编辑SSH配置文件:
bash
sudo vim /etc/ssh/sshd_config
找到以下参数并修改为:
ini
PasswordAuthentication yes # 启用密码认证
ChallengeResponseAuthentication yes # 可选,启用交互式认证
PermitRootLogin yes # 若允许root密码登录(生产环境建议禁止)
重启SSH服务使配置生效:
bash
sudo systemctl restart sshd
2. 创建本地用户并设置密码
添加新用户(如 `testuser`):
bash
sudo useradd -m testuser # -m自动创建家目录
设置用户密码:
bash
sudo passwd testuser
输入两次密码后生效。密码需符合系统复杂度策略(如长度、大小写、特殊字符等)。
3. 密码策略与安全增强
修改密码过期策略:
编辑 `/etc/login.defs` 调整 `PASS_MAX_DAYS`(最长有效期)等参数。
强制下次登录修改密码:
bash
sudo chage -d 0 testuser
禁用空密码:
确保 `/etc/ssh/sshd_config` 中 `PermitEmptyPasswords` 设为 `no`。
禁止特定用户登录:
在 `/etc/ssh/sshd_config` 末尾添加:
ini
DenyUsers blocked_user
4. PAM模块配置(高级)
PAM(Pluggable Authentication Modules)控制认证流程:
编辑 `/etc/pam.d/common-password` 可强制密码复杂度:
ini
password requisite pam_pwquality.so enforce_for_root minlen=10 difok=3
需安装 `libpam-pwquality` 工具包。
5. 防火墙与SELinux(如有)
防火墙开放SSH端口(默认22):
bash
sudo ufw allow 22/tcp # Ubuntu
sudo firewall-cmd --add-service=ssh --permanent # CentOS
SELinux环境下需确保SSH上下文正确:
bash
sudo restorecon -Rv /etc/ssh
6. 密钥与密码双因素认证(可选)
若需更高安全,可配置SSH同时要求密钥和密码:
ini
AuthenticationMethods publickey,password
注意事项
日志监控:通过 `/var/log/auth.log` 或 `journalctl -u sshd` 查看登录尝试。
fail2ban防护:安装fail2ban自动封禁暴力破解IP。
禁用旧协议:在 `sshd_config` 中禁用SSHv1及弱加密算法(如 `Protocol 2`)。
完成配置后,可通过 `ssh testuser@localhost` 测试密码登录是否生效。若需恢复密钥登录,需将 `PasswordAuthentication` 改回 `no` 并重启SSH服务。