如何在服务器端配置SSH以允许密码认证

在服务器端配置SSH以允许密码认证,需通过以下步骤操作。请注意,密码认证的安全性较低,建议仅在测试或临时需求中使用,并尽快恢复为更安全的密钥认证。

步骤 1:备份 SSH 配置文件

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

避免配置错误导致无法登录。

步骤 2:编辑 SSH 配置文件

使用文本编辑器(如 nano 或 vim)打开配置文件:

sudo nano /etc/ssh/sshd_config

步骤 3:修改关键参数

找到以下参数并修改为 yes

PasswordAuthentication yes

若该行被注释(以 # 开头),删除注释符号。

步骤 4:检查相关参数(可选)

  • 允许 Root 登录(非必需,谨慎开启):

PermitRootLogin yes
  • 启用 PAM 认证(通常默认开启):

UsePAM yes

步骤 5:保存并退出编辑器

  • nano:按 Ctrl + O 保存,Ctrl + X 退出。

  • vim:按 :wq 保存并退出。

 

步骤 6:重启 SSH 服务

  • Systemd 系统(Ubuntu/CentOS 7+)

sudo systemctl restart sshd

SysVinit 系统(CentOS 6 或旧版)

sudo service sshd restart

步骤 7:验证配置

检查配置语法

sudo sshd -t

无输出表示配置正确。

尝试密码登录

ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no user@your_server_ip

输入密码测试是否成功。

注意事项

安全警告

  • 密码认证易受暴力破解攻击,建议:

    • 仅临时开启,完成后立即关闭。

    • 使用强密码(长且复杂)。

    • 配置防火墙(如 fail2ban)限制登录尝试。

其他可能问题

  • 确保防火墙开放 SSH 端口(默认 22)。

  • 若使用 SELinux/AppArmor,确保未阻止 SSH 服务。

恢复密钥认证(推荐)

完成测试后,将 PasswordAuthentication 改回 no 并重启 SSH 服务:

PasswordAuthentication no