Ubuntu开启SSH服务并允许root登录配置 Linux
前言
新装的 Ubuntu 服务器默认可能没有安装 openssh-server,远程 SSH 连不上;或者安装了 SSH 但禁止 root 用户直接登录,用普通用户登入后还要切换。很多运维第一次远程连接 Ubuntu 就卡在 Permission denied。本文讲解安装 openssh-server、开启服务、放行防火墙、修改配置允许 root 登录、重启生效并验证的完整步骤,同时说明禁止 root 直连的安全取舍。
操作步骤
1. 安装 SSH 服务端
sudo apt update
sudo apt install -y openssh-server
2. 启动并设置开机自启
sudo systemctl enable --now ssh
sudo systemctl status ssh
看到 active (running) 即服务正常,Ubuntu 服务名是 ssh(不是 sshd)。
3. 防火墙放行 22 端口(ufw)
sudo ufw allow 22/tcp
sudo ufw reload
没启用 ufw 可跳过,云服务器还要在控制台安全组放行 22。
4. 编辑 sshd 配置允许 root 登录
sudo vi /etc/ssh/sshd_config
找到或修改:
PermitRootLogin yes
PasswordAuthentication yes
PermitRootLogin yes 允许 root 密码登录;若用密钥可保留 PermitRootLogin prohibit-password。
5. 重启 SSH 服务
sudo systemctl restart ssh
6. 验证连接
ssh root@服务器IP
新开一个终端测试,不要关闭当前窗口,防止配置错误把自己锁在外面。
常见坑
- 服务名写错成 sshd,Ubuntu 上 systemctl restart sshd 报未找到单元。
- 只装了客户端 openssh-client,没装服务端 openssh-server。
- PermitRootLogin 被注释或值为 no,root 登录直接被拒。
- 改完配置不重启 ssh,参数不生效。
- 云安全组没放行 22,本机防火墙放行了也连不上。
- 允许 root 密码登录风险高,公网建议改用密钥登录并关闭密码认证。
- /etc/ssh/sshd_config.d/ 下的子配置可能覆盖主配置,注意排查。
总结
Ubuntu 开启 SSH 的关键是装 openssh-server、enable --now ssh、ufw 放行 22,再在 sshd_config 设置 PermitRootLogin。生产环境更推荐密钥登录、关闭 root 密码直连。任何 sshd_config 修改后都要保留当前会话,新开窗口验证成功再关闭旧连接。
遇到问题加QQ23979811 协助处理