在服务器端配置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