日常使用 Ubuntu 服务器/桌面版时,远程连接、文件传输是最常用的刚需功能,而 sshd(OpenSSH 服务端) 就是实现这一功能的核心工具。很多新手会混淆 SSH 客户端和服务端:Ubuntu 默认自带 SSH 客户端(只能主动连接其他机器),想要被远程连接,必须手动安装配置 sshd 服务。
本篇教程适配 Ubuntu 20.04/22.04/24.04 全系列版本,全程命令可直接复制执行,包含安装、启停、开机自启、防火墙放行、安全优化、故障排查全流程,零基础也能一键搞定。
一、前期准备
1. 确保 Ubuntu 系统可以正常联网,能够访问官方软件源;
2. 打开终端,快捷键 Ctrl + Alt + T;
3. 拥有普通用户 sudo 权限(服务器默认创建的管理员账号均可满足)。
二、安装 OpenSSH 服务端(sshd)
Ubuntu 官方提供的 SSH 服务软件包为 openssh-server,我们通过 apt 包管理器安装,先更新软件源缓存,再执行安装,保证安装包最新无缺失。
1. 更新系统软件源
sudo apt update
该命令只会更新软件包索引,不会升级系统软件,安全无风险,是安装软件前的必备步骤。
2. 安装 sshd 服务
sudo apt install openssh-server -y
安装完成后,系统会 自动启动 sshd 服务,无需手动启动,默认监听 22 端口。
三、查看 sshd 服务状态
安装完毕后,可通过 systemctl 命令查看服务运行状态,确认是否正常启动:
systemctl status ssh
✅ 正常状态显示:active (running),代表服务运行正常,可正常接收远程连接。
补充说明:Ubuntu 系统中,SSH 服务进程名统一为 ssh,而非 sshd,所有服务管理命令均使用 ssh。
四、sshd 服务常用管理命令
日常运维中,启停、重启、设置开机自启是高频操作,整理常用命令如下:
# 启动服务
sudo systemctl start ssh
# 停止服务
sudo systemctl stop ssh
# 重启服务(修改配置后必用)
sudo systemctl restart ssh
# 设置开机自启(推荐开启)
sudo systemctl enable ssh
# 关闭开机自启
sudo systemctl disable ssh
执行 sudo systemctl enable ssh 后,后续服务器重启,SSH 服务会自动运行,无需手动启动。
五、放行防火墙 SSH 端口(关键步骤)
Ubuntu 默认开启 ufw 防火墙,若不放行 22 端口,外部设备无法远程连接服务器,必须手动放行。
1. 放行 SSH 端口
sudo ufw allow 22/tcp
2. 重载防火墙规则
sudo ufw reload
3. 查看防火墙状态
sudo ufw status
显示 22/tcp ALLOW Anywhere 即代表端口放行成功。
六、远程连接测试
完成以上配置后,即可在 Windows、Mac、其他 Linux 设备上远程连接 Ubuntu 服务器。
1. 查看服务器 IP 地址
ip a
找到网卡对应的 IPv4 地址(一般为 192.168.x.x 内网地址或公网 IP)。
2. 远程连接命令
ssh 用户名@服务器IP
示例:ssh ubuntu@192.168.1.100
首次连接输入 yes 确认信任主机,再输入服务器登录密码,即可成功进入远程终端。
七、基础安全优化(可选但推荐)
默认 22 端口容易被暴力破解,推荐简单优化,提升服务器安全性。SSH 核心配置文件路径:/etc/ssh/sshd_config。
1. 修改默认端口(示例改为 2222)
# 编辑配置文件
sudo nano /etc/ssh/sshd_config
找到 Port 22,注释原有配置,新增端口配置:
# Port 22
Port 2222
2. 禁止 root 远程登录
找到 PermitRootLogin,修改为:
PermitRootLogin no
3. 生效配置
sudo systemctl restart ssh
⚠️ 修改端口后,后续连接需要指定端口:ssh 用户名@IP -p 2222,同时需要在防火墙放行新端口sudo ufw allow 2222/tcp。
八、常见问题排查
1. 连接超时/无法连接
– 检查服务器网络是否通畅;
– 确认防火墙已放行 22 端口或自定义端口;
– 检查 sshd 服务是否正常运行。
2. 密码正确但登录失败
– 检查 sshd_config 中 PasswordAuthentication 是否开启为 yes;
– 若已禁用 root 登录,请勿使用 root 账号连接。
3. 服务启动失败
大概率是端口被占用或配置文件写错,可通过日志排查:
journalctl -u ssh
九、总结
1. Ubuntu 实现远程被连接,核心是安装 openssh-server 服务端;
2. 核心流程:更新源 → 安装服务 → 查看状态 → 放行防火墙端口 → 远程连接;
3. 务必开启开机自启,生产环境建议修改默认端口、禁止 root 登录,提升安全性;
4. 所有命令适配主流 Ubuntu 版本,兼容性极强,新手可直接照搬部署。