必须安装openssh-server并启动SSH服务,否则远程连接会报“Connection refused”;安装后用systemctl启动并设为开机自启,验证sshd监听22端口且防火墙放行,再通过本地IP实现远程SSH登录。

想从另一台电脑通过SSH命令或PuTTY等工具连接Ubuntu服务器,必须先让系统监听22端口并接受远程连接请求,否则执行ssh user@192.168.x.x时会直接报错“Connection refused”。
确认并安装openssh-server
打开终端,运行sudo apt update更新软件源列表。
执行sudo apt install openssh-server安装服务。如果系统已预装,该命令仅校验版本;若未安装,则自动下载并部署sshd守护进程。
安装过程不弹窗、无交互提示,全程后台静默完成。这一步不可跳过——Ubuntu桌面版和多数云镜像默认不启用SSH服务,【没有openssh-server,后续所有配置都无效】。
启动并设为开机自启
方法一:使用systemctl(推荐)
运行sudo systemctl start ssh立即启动服务;
再运行sudo systemctl enable ssh确保重启后自动加载。
方法二:使用service命令
执行sudo service ssh start启动;
执行sudo systemctl enable ssh仍需运行以实现开机自启——service命令本身不处理自启逻辑。
注意:Ubuntu 22.04及之后版本已弃用update-rc.d,强行使用可能报错且不生效。
验证服务是否正常监听
第一步:检查进程
运行sudo systemctl status ssh,看到active (running)即表示服务已就绪。
第二步:确认端口绑定
执行sudo ss -tlnp | grep ':22',输出中应包含sshd及其监听地址(如*:22或0.0.0.0:22)。若只显示:::22(IPv6-only),说明IPv4未启用,需修改配置文件。
第三步:本地连通性测试
在本机终端输入ssh localhost,能成功登录即证明服务响应正常。若提示Permission denied,是认证问题,不是服务未启动。
开放防火墙端口(如启用ufw)
运行sudo ufw status verbose查看防火墙状态。若显示Status: active,则必须放行SSH端口。
执行sudo ufw allow 22开通默认端口。若已将SSH改为其他端口(如2222),此处必须对应写成sudo ufw allow 2222,否则外部连接始终被拦截。
这条命令只需执行一次,规则永久保存。无需重启ufw,生效即时。
获取本机IP并远程连接
① 在Ubuntu终端运行ip a | grep "inet " | grep -v "127.0.0.1",找出形如192.168.x.x或10.x.x.x的局域网IP地址。
② 在另一台设备上打开终端或PuTTY,输入ssh 用户名@上一步查到的IP(例如ssh alice@192.168.1.105)。
③ 首次连接会提示确认主机密钥指纹,输入yes回车;随后输入该用户的登录密码,回车后即进入远程shell。


















