linux服务器修改ssh登录密码,就是通过登录远程服务器后执行passwd命令来更改当前用户密码,或者用root权限强制重置其他用户的密码,整个过程只需要几行命令就能完成。
很多刚接触云服务器或者独立服务器的朋友,经常把“改服务器密码”和“改ssh登录密码”混为一谈,ssh登录密码就是你的服务器用户密码,修改它不需要重启服务,也不需要重新生成密钥,下面我直接把最常用的操作方法、常见坑和后续验证步骤讲清楚。
修改ssh登录密码前,你需要知道的三件事
在动手之前,先花30秒确认这三件事,能帮你避免改完登不上的尴尬:
- 确认你的登录用户:是用root直连,还是普通用户加sudo?不同用户改密码的命令一样,但影响范围不同。
- 确认你是否开了密钥登录:如果服务器只允许密钥认证,那么改密码不影响你登录,但改了也白改,因为密码根本用不上。
- 确认你当前网络是否稳定:改密码不会断连接,但如果同时乱改了ssh端口或防火墙,那就另说了。
行业共识认为,正常修改密码的操作不会导致ssh连接中断,真正导致连不上的是改错用户、改完立刻关闭当前会话、或者同时动了ssh配置文件。
linux修改ssh登录密码命令怎么用
用passwd命令修改当前登录用户密码
这是最常用的场景,你已经通过ssh连接上了服务器,想给当前这个用户换一个新密码,操作如下:
passwd
输入后系统会提示:
- 先输入当前的密码(也就是老密码)
- 再输入两次新密码(输入时不显示任何字符是正常的)
看到 passwd: all authentication tokens updated successfully 就表示修改成功。
这个命令适用于root用户,也适用于普通用户。普通用户只能改自己的密码,root用户能改所有人的密码。
用passwd命令强制重置其他用户密码
如果你是root,想帮服务器上的某个普通用户改密码,比如用户叫testuser:
passwd testuser
这时候不需要输入testuser的老密码,直接输入两次新密码就完成了,这个操作在需要重置员工账号、临时账号时非常有用。

修改密码后立刻生效,无需重启ssh服务
很多教程会误导你去重启ssh服务,实际上完全不必要,密码修改后立即生效,下次ssh登录时使用新密码即可。重启sshd服务不会让新密码失效,但也不是必须的操作。
如果你非要确认服务状态,可以用:
systemctl status sshd
看到 active (running) 就说明服务正常。
修改ssh密码后无法登录的常见原因排查
改完密码发现登录不上了,别着急重装系统,按下面顺序查:
- 检查是否大小写或键盘布局问题:密码中的大小写、特殊字符在终端里容易被看错,尤其是在手机上操作时。
- 确认是否改错了用户:如果你在某个用户下执行了
passwd,只改了那个用户,而ssh登录时用的是另一个用户名。 - 检查ssh是否真正启用了密码认证:查看
/etc/ssh/sshd_config里PasswordAuthentication是否为yes,如果该值设为no,密码再对也登录不了,必须改用密钥。 - 查看是否被fail2ban等工具临时封禁:多次输错密码后,你的IP可能被临时拉黑,等待几分钟或从另一个IP登录即可。
- 确认是否用过单引号或特殊字符:某些密码里的字符(、)在命令行中会被解释,建议用简单且安全的组合。
如果上述都排查了还是不行,可以通过云厂商的控制台(比如简米云、酷番云的VNC)登录服务器,再检查sshd配置。
修改root用户ssh登录密码的特殊注意事项
root用户是服务器最高权限,修改root密码时额外注意:
- 不要在root的ssh会话里执行
passwd root后直接关闭终端,先开一个新终端测试新密码能登录,再关旧窗口,虽然密码修改本身不会掉线,但这个习惯能防止你误操作时无路可退。 - 如果服务器同时存在root和sudo用户,建议平时用sudo用户操作,root密码修改频率可以更低,减少暴露风险。
- 某些云服务器面板(如宝塔)修改密码后,会自动同步到ssh,但如果你直接在命令行改,面板上显示的密码会过期,这不算错误,只是信息未同步。
ssh密码和ssh密钥的区别,以及如何选择

很多人会问:密码能登录,为什么还要搞密钥?两者不是替代关系,而是互补:
| 对比项 | ssh密码 | ssh密钥 |
|---|---|---|
| 便捷性 | 记忆简单,但容易被爆破 | 无需记密码,但要管理密钥文件 |
| 安全性 | 弱密码容易被暴力破解 | 私钥文件安全性高,基本无法暴力破解 |
| 登录方式 | 输入密码即可 | 需将公钥放入authorized_keys |
| 适合场景 | 临时登录、云服务器快速上手 | 生产环境、长期稳定的运维 |
如果你的服务器公网IP暴露,强烈建议关闭密码登录,只保留密钥登录,但这跟“修改ssh登录密码”是两个操作,前者是改sshd配置,后者是改用户密码。
如果你想学习如何在linux服务器修改ssh登录密码的同时保留密钥登录,方法很简单:先修改密码,再检查/etc/ssh/sshd_config,确保 PasswordAuthentication 的设置符合你的需求。
修改密码后的验证步骤
改完密码,别急着退出,按这三步验证:
打开一个新的终端窗口,执行:
ssh 用户名@服务器IP
-
输入刚才设置的新密码,能正常登录就说明成功。
-
登录后执行:
id
确认显示的用户是你想改的那个,如果显示的用户不对,说明你用错了ssh连接参数。
忘记密码时如何重置linux服务器ssh登录密码
忘记密码是另一类常见问题,这时你无法通过ssh登录,需要走云服务商的救援途径:
- 使用云控制台VNC登录:简米云、酷番云、华为云等都提供网页版终端入口,不需要ssh密码,直接连接到服务器本地控制台。
- 使用单用户模式(救援模式)重置:重启服务器,在grub引导时进入单用户模式,然后执行
passwd重置root密码。 - 部分云厂商提供“重置实例密码”功能:这相当于在虚拟化层直接修改密码,但通常要求服务器处于关机状态。
如果你是自建机房或虚拟机,推荐使用单用户模式,操作步骤因发行版不同略有差异,但核心思路都是绕过登录认证直接进入shell。

linux服务器修改ssh登录密码的常见错误操作
为了让新手少踩坑,我列出几条高频率的错误做法:
- 直接用
echo 密码 | passwd --stdin改密码:虽然命令效率高,但会暴露在shell历史记录里,安全性差,不建议在生产环境使用。 - 用特殊符号作为密码首尾:某些终端或面板会截断特殊字符,导致实际密码和你输入的不一致。
- 在修改密码的同时关了
PermitRootLogin:如果这个值改成no,root密码再正确也无法直接登录,这两个操作一定要分开做,并确保有其他用户可登录。 - 改完密码不检查计划任务或脚本:如果服务器上有脚本用老密码连接其他服务器,改密码后这些脚本会报错,需要同步更新。
如何养成安全的ssh密码管理习惯
设置密码时,建议遵循以下原则:
- 密码长度不少于12位,包含大小写字母、数字和符号中的至少三类。
- 不要使用生日、姓名拼音、连续数字等常见弱密码。
- 定期更换密码,但不要频繁到每月一次,一般是季度或半年一次,同时结合密钥登录更合理。
- 使用密码管理器存储密码,不要明文写在服务器或本地文档里。
如果你管理多台服务器,可以统一用一个规律生成不同密码,或直接使用密钥登录,将密码登录彻底关闭。
相关问题解答
修改linux ssh密码会影响正在运行的网站或服务吗?
不会,ssh密码只用于ssh登录认证,和网站服务(如nginx、apache)、数据库、业务进程完全无关,修改密码后,当前已建立的连接不会断开,新连接使用新密码验证即可。唯一例外是如果你通过ssh端口转发了数据库服务,改密码不影响转发规则。
可以用linux命令行一次性修改ssh密码而不交互吗?
可以用echo "新密码" | passwd --stdin 用户名这样的方式实现非交互修改,但该操作会在shell历史中留下明文密码,存在泄露风险,建议用passwd命令交互修改,或者使用chpasswd配合临时环境变量。在生产环境不推荐使用命令行明文传参修改密码。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/850564.html

