
好,这个不是网络问题,而是SSH 认证被服务器拒绝。
你这张图里的关键信息已经把原因暴露出来了。
先给结论(非常明确)
👉 你现在“能连到这台虚拟机”,但 root 用户被 SSH 明确拒绝用密码登录。
所以表现是:
- ❌ 不是 IP 不通
- ❌ 不是端口不通
- ❌ 不是桥接 / 网卡问题
- ✅ 是 Ubuntu 默认安全策略
看图里 3 个关键点
① 远程主机
192.168.2.102:22
✔ IP 对(就是你虚拟机的桥接 IP)
✔ 22 端口能通(否则连这个界面都不会出来)
② 服务器类型(关键)
OpenSSH_8.9p1 Ubuntu-3ubuntu0.13
⚠️ 这是 Ubuntu,不是 CentOS
Ubuntu 的默认行为是:
禁止 root 通过 SSH 使用密码登录
③ 明确的报错
SSH 服务器拒绝了密码,请再试一次
这句话的真实含义是:
服务器说:
“我收到了你的密码,但我策略上不允许 root 用密码登录”
⚠️ 不是密码错
为什么 Ubuntu 要这么干(设计层面)
Ubuntu 默认:
PermitRootLogin prohibit-password
意思是:
-
root 可以:
- ❌ 密码登录(禁止)
- ✅ 公钥登录(允许)
-
普通用户可以:
- ✅ 密码登录
- ✅ sudo 提权
这是标准生产级安全配置。
你现在有 3 种正确解法(从推荐到不推荐)
✅ 方案一(最推荐):用普通用户登录 + sudo
1️⃣ 用你安装 Ubuntu 时创建的用户登录
比如:
用户名:ubuntu / svit / zhangyizhuo / 你自己建的
2️⃣ 登录后提权
sudo -i
或
sudo su -
👉 这才是 Ubuntu 官方推荐方式
⚠️ 方案二(开发环境可用):允许 root 密码登录
只建议你在虚拟机 / 学习环境用
1️⃣ 先在虚拟机“控制台”里登录(不是 SSH)
在 VirtualBox 窗口里:
sudo -i
2️⃣ 编辑 SSH 配置
vim /etc/ssh/sshd_config
找到或加上:
PermitRootLogin yes
PasswordAuthentication yes
⚠️ 注意不是注释行
3️⃣ 重启 SSH 服务
systemctl restart ssh
或:
systemctl restart sshd
4️⃣ 再用 SSH 工具连
用户名:root
密码:root 的密码
🔐 方案三(最安全):root 公钥登录
如果你后面玩服务器,这个是终极方案,我可以单独带你一步步配。
顺手帮你再确认一件事(很重要)
你之前 ifconfig 里:
enp0s3 192.168.2.102
说明:
✔ 桥接网卡 OK
✔ 局域网访问 OK
✔ SSH 网络路径完全正常
问题 100% 在 SSH 登录策略
一句话定性
你不是“连不上服务器”,
而是“被 Ubuntu 拒绝用 root 密码登录”。
下一步我可以直接带你做的事(你选一个)
1️⃣ 判断你这台 Ubuntu 有没有普通用户
2️⃣ 手把手改 sshd_config(逐行解释)
3️⃣ 给你一个 开发环境 vs 生产环境 的 SSH 最佳配置
4️⃣ 顺带讲清:CentOS 为啥默认能 root 登录,Ubuntu 不行
你说选哪个,我直接继续。

8619

被折叠的 条评论
为什么被折叠?



