装完Ubuntu之后,很多人第一件事就是折腾root密码和SSH远程登录。尤其是习惯用CentOS或Windows服务器的人,刚上手Ubuntu会发现“怎么登录界面都没有root选项”,或者明明在服务器上设置了密码,本地用SSH还是连不进去。这篇文章就专门讲清楚Ubuntu下给root设置密码、开启SSH远程登录的完整流程,以及我把这些操作踩过的坑、查过的资料一并放进来,按步骤来基本能一次搞定。
先说清楚这个内容适合谁:刚装好Ubuntu(桌面版或服务器版)想获得root权限、想从Windows/Mac远程连到Linux环境的新手;也包括用VMware或Hyper-V装了虚拟机、需要从宿主机SSH进去传文件做实验的学生党。如果你已经在Ubuntu里能用sudo,但不知道root密码怎么设、SSH怎么开,那看这篇就够了。
1. 核心思路:为什么Ubuntu默认没有root密码
1.1 Ubuntu的sudo机制与默认root账户状态
Ubuntu从很早的版本开始就默认不允许直接用root登录图形界面,也不给root设置初始密码。它采用的方式是:安装系统时创建一个普通用户,并把这个用户加入sudo组。平时操作需要管理员权限时,用sudo加命令提权,提权时输入这个普通用户的密码。
这带来的结果是:root账户在系统里是存在的,但它的密码是锁定状态(/etc/shadow里密码字段为!),所以没法直接登录。很多刚从其他发行版转过来的人会一脸懵:我明明知道root是超级管理员,为什么在Ubuntu里不能像以前一样输入su -然后回车直接进root?
这个设计初衷是安全。让所有高权限操作都走sudo,系统会留下日志,出了问题能查到是哪个用户做了什么。而且普通用户密码和root密码分开,即使普通用户密码泄露,也只是拿到了一个“能临时提权”的账号,而不是永久的管理员权限。理解这一点之后,你去设置root密码时就不会奇怪“为什么还要单独设一次”。
1.2 设置root密码前要搞清的事
设置root密码之前,有几个关键点必须明确。
第一,sudo passwd root和passwd是两码事。普通用户执行passwd只能改自己的密码,root用户执行passwd 用户名可以改任意用户密码。给root设密码用的是前者:在普通用户终端里输入sudo passwd root,这时系统会让你先输当前用户的sudo密码,验证通过后再让你设置root的新密码。
第二,设了root密码之后,原来的普通用户和sudo机制并不会失效。你依然可以继续用sudo,也可以用su -切换到root。两个通道并存,不会冲突。
第三,如果之后你又想把root密码清空、恢复成锁定状态,可以用sudo passwd -l root。这个命令是锁定root密码,不是删除root账户。同理,解锁用sudo passwd -u root。很多人误以为“忘记root密码就只能重装系统”,其实解锁方式主要是进恢复模式,这个在后面会讲。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 为root账户设置密码:实操步骤
2.1 使用sudo passwd root直接设置
登录你安装Ubuntu时创建的普通用户,打开终端,输入:
bash复制sudo passwd root
系统会依次提示:
code复制[sudo] password for yourname:
New password:
Retype new password:
passwd: password updated successfully
第一行输入普通用户的登录密码,后面两行输入要给root设置的新密码。注意输入密码时终端不会显示任何字符,这是正常的,不是键盘坏了。
看到password updated successfully就是成功了。这时可以验证一下:
bash复制su -
输入刚设置的root密码,如果提示符
