在 CentOS 上设置或修改 SSH 登录密码,其实是设置 系统用户密码,因为 SSH 默认使用系统账号认证。下面分情况说明。
如果你已经登录系统,直接执行:
passwd
按提示输入 当前密码 → 新密码 → 确认新密码。
例如给用户 testuser 设置密码:
passwd testuser
只有 root 用户才能修改其他用户的密码,不需要知道旧密码。
修改完密码后,必须确认 SSH 服务允许密码认证,否则仍然无法登录。
vi /etc/ssh/sshd_config
确保以下配置存在且未被注释:
PasswordAuthentication yes
如果原来是:
#PasswordAuthentication no
改成:
PasswordAuthentication yes
systemctl restart sshd
service sshd restart
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
或直接关闭防火墙(不推荐生产环境):
systemctl stop firewalld
systemctl disable firewalld
如果仍无法登录,可临时关闭测试:
setenforce 0
正式环境建议保持 SELinux 开启。
ssh 用户名@服务器IP
示例:
ssh root@192.168.1.100
检查:
passwd -S 用户名
在 /etc/ssh/sshd_config 中:
PermitRootLogin yes
如果你愿意,我可以教你 禁用密码登录,只用 SSH 密钥。
如果你愿意,可以告诉我:
centos 7 / 8 / stream)