2026-02-03

ubuntu开启ssh远程访问新文章标题

刚装的ubuntu虚拟机远程连接连不上

> ssh richard@192.168.3.21
ssh: connect to host 192.168.3.21 port 22: Connection refused

直接问AI,怎么办

image.png

以下为AI回答,完美解决

这个错误提示 ssh: connect to host 192.168.3.21 port 22: Connection refused 的核心意思是:你找到了这台机器(IP 是通的),但它拒绝了你的 SSH 连接请求

这通常是因为目标机器没有开启 SSH 服务,或者防火墙挡住了端口 22。

既然你正在尝试以 richard 的身份登录,请按照以下步骤排查(主要需要在目标机器 192.168.3.21 上操作):

1. 检查 SSH 服务是否安装并运行(最常见原因)

如果这台机器是刚装好的 Linux(比如在飞牛/虚拟机里新装的 Ubuntu/Debian),它可能默认没装 SSH 服务。

你需要通过直接访问这台机器的终端(比如通过虚拟机的 VNC 控制台或直接接显示器键盘),输入以下命令:

  • 检查 SSH 状态:

    Bash

    sudo systemctl status ssh
    

    如果显示 Unit ssh.service could not be found,说明没安装。

  • 安装并启动 SSH(以 Ubuntu/Debian 为例):

    Bash

    sudo apt update
    sudo apt install openssh-server
    sudo systemctl enable --now ssh
    

2. 检查防火墙设置

如果 SSH 服务已运行(显示 active/running),可能是防火墙拦截了连接。

  • 检查防火墙状态(Ubuntu):

    Bash

    sudo ufw status
    
  • 放行 SSH 端口:

    Bash

    sudo ufw allow ssh
    # 或者
    sudo ufw allow 22
    

3. 如果这台是新创建的虚拟机 (VM)

考虑到你之前在使用虚拟环境(如飞牛、RouterOS 等),如果这是新开的一台虚拟机:

  • IP 冲突: 确认 192.168.3.21 确实是这台 Linux 虚拟机的 IP(用 ip addr 查看),而不是局域网内其他设备的 IP。

  • 网卡模式: 确认虚拟机的网卡模式是桥接模式 (Bridge),否则 IP 可能无法从外部直接访问。

下一步:

如果上面都检查了还是不行,你可以尝试在该机器本地运行 ssh localhost 看看是否能连上自己,以此判断是服务问题还是网络问题。