Ubuntu虚拟机里安装了SSH,开启SSH服务的时候报错

在虚拟机的 Ubuntu 系统里面已经通过下面的命令安装了 SSH:

sudo apt install openssh-server -y

但是在通过下面的命令查看 SSH 服务是否运行成功的时候报错:

 

# 查看SSH服务是否运行成功(显示active表示成功)
sudo systemctl status ssh

 

报错信息如下:

图片

 错误原因分析:

这个状态显示得非常清楚:SSH服务已经安装好了,但当前没有运行(inactive (dead)),也没有设置为开机自启(disabled

这就是为什么你无法用VS Code连接虚拟机的直接原因——你的Ubuntu系统“关门”了,没有对外提供SSH连接服务。

解决起来非常简单,只需要两步命令,我帮你把服务“启动”并“开门”:

 

🛠️ 立即修复(复制粘贴即可)

在Ubuntu终端中依次执行以下两条命令:

第一步:启动SSH服务(让程序运行起来)

sudo systemctl start ssh

执行后没有任何提示,就表示成功了。

第二步:设置SSH为开机自启(避免每次重启都要手动开)

sudo systemctl enable ssh

执行后会显示 Created symlink... 之类的提示,表示设置成功。

如下图所示:

图片

 

✅ 验证是否修复成功

再次输入检查状态的命令:

sudo systemctl status ssh

现在你应该会看到状态变成 Active: active (running)(字体颜色变成绿色),这样就说明SSH服务已经正常运行了。 如下图所示:

图片

 

🔥 额外检查:防火墙是否拦截了连接?

Ubuntu默认的防火墙是ufw,大部分情况下它是关闭的。但为了确保万无一失,你可以执行下面的命令检查一下:

sudo ufw status
  • 如果显示 Status: inactive,说明防火墙是关闭的,不用管,直接去VS Code连接即可。

  • 如果显示 Status: active,则需要执行 sudo ufw allow ssh 来放行SSH连接(22端口),然后再去VS Code连接。

 

📡 最后,确认你的IP地址

在终端输入 ip a,找到类似 inet 192.168.x.x 的那一行(通常是 ens33 或 eth0 下面的)。这就是你的Ubuntu IP地址,在VS Code连接时使用这个IP。

图片

 

💡 为什么会出现这种情况?

PDF教程里虽然让你安装了 openssh-server,但在某些Ubuntu版本中,安装完成后并不会自动启动服务。需要用户手动敲一下 start 和 enable 来激活。你现在做的正是把这个“最后一步”补上。

执行完上面的命令,你就可以在Windows的VS Code里正常连接你的Ubuntu虚拟机了。如果连接时遇到“连接超时”或“拒绝连接”,先检查虚拟机IP是否输对,再检查Windows和虚拟机是否在同一个网段(NAT模式下通常是通的)。

posted @ 2026-06-24 17:20  smil、梵音  阅读(29)  评论(0)    收藏  举报