
要通过 SSH 远程管理 Ubuntu 系统,需要安装 OpenSSH 服务端并开放入站登录。Ubuntu 26.04、24.04 和 22.04 LTS 官方源都自带了 OpenSSH 软件包,直接使用 APT 命令就能安装。
三大 LTS 版本的安装命令完全相同,但底层服务逻辑有所差异:Ubuntu 26.04 和 24.04 默认使用基于 systemd socket activation 的ssh.socket按需激活模型,22.04 仍采用传统的ssh.service常驻守护进程模式。
步骤 1:Ubuntu SSH 安装
1.1 安装 OpenSSH
执行以下命令安装 OpenSSH 服务端:
sudo apt install openssh-server
| Ubuntu 发行版 | OpenSSH 大版本 | 服务触发模型 |
|---|---|---|
| Ubuntu 26.04 LTS | 10.x | ssh.socket 触发 |
| Ubuntu 24.04 LTS | 9.x | ssh.socket 触发 |
| Ubuntu 22.04 LTS | 8.x | ssh.service 常驻守护进程 |

1.2 启用 SSH 服务
- Ubuntu 26.04/24.04 LTS:采用按需加载的 Socket 架构,启用
ssh.socket后,systemd 会持续监听 22 端口,收到新连接请求时才拉起ssh.service:
# Ubuntu 26.04/24.04 LTS
sudo systemctl enable --now ssh.socket
- Ubuntu 22.04 LTS:使用传统常驻进程架构,直接启用
ssh.service即可:
# Ubuntu 22.04 LTS
sudo systemctl enable --now ssh
1.3 验证 SSH 监听状态
1验证服务状态。采用 Socket 机制的新版系统,连接激活时会同时返回systemd与sshd进程号,22.04 通常只返回sshd进程:
# Ubuntu 26.04/24.04 LTS
sudo systemctl status ssh.socket
# Ubuntu 22.04 LTS
sudo systemctl status ssh
2验证是否正在侦听 SSH 22 端口:
sudo ss -tlnp | grep -E ':22'

步骤 2:Ubuntu SSH 安全加固
2.1 使用 SSH 配置片段
默认安装的 OpenSSH 直接暴露在公网风险极高,有必要进行安全加固。
OpenSSH Server 的sshd_config配置文件详细参数请参考这里。
新版 OpenSSH 支持碎片化配置,会自动加载/etc/ssh/sshd_config.d/*.conf路径下的规则文件,自定义规则和默认配置分离,后续维护更加方便。
先创建一个独立的安全加固配置文件:
sudo vi /etc/ssh/sshd_config.d/99-ssh-sec.conf
2.2 修改 SSH 默认端口(可选)
修改默认 22 端口无法替代真正的安全加固,但能大幅减少自动化扫描和低质量爆破流量。
Port 2222
先开放防火墙新端口规则(例如sudo ufw allow 2222/tcp)→ 验证新端口可用 → 再关闭旧端口。如果服务器部署在云平台(AWS、阿里云、腾讯云等),还需要同步放行安全组端口。
2.3 限制 SSH 登录失败次数
通过MaxAuthTries参数,定义单次会话允许的最大密码尝试次数。设为 3 可拦截绝大多数暴力破解脚本。如果本地 SSH 代理存储了多个密钥,可以适当调大,避免误拦截。
MaxAuthTries 3
2.4 禁止 Root 直接登录
在安全配置文件中添加以下规则,禁止 root 账号直接登录:
PermitRootLogin no
2.5 强制启用 SSH 密钥验证
关闭密码认证、改用 SSH 密钥登录,是公网服务器的标准安全实践。
关闭密码认证前,请确保已经配置好密钥,否则会导致无法登录。密钥可以参考「3.2 小节」生成,或者在 Windows 上直接生成 SSH 密钥对。
两项配置需要同时关闭,才能彻底禁用基于密码的交互式认证。
PasswordAuthentication no
KbdInteractiveAuthentication no

2.6 验证配置并重启服务
1配置修改完成后,先用内置工具验证语法和生效配置:
# 检查语法
sudo sshd -t
# 输出最终生效配置
sudo sshd -T

2重启 ssh 服务:
sudo systemctl daemon-reload
# Ubuntu 26.04/24.04 LTS
sudo systemctl restart ssh.socket
# Ubuntu 22.04
sudo systemctl restart ssh
步骤 3:SSH 到远程服务器
服务端配置完成后,你可以直接使用 ssh 命令或其它高级客户端如 Termius(macOS),Xshell(Windows)等进行连接。
3.1 连接到远程服务器
- 默认使用 22 端口:
ssh username@remote_server
- 自定义端口连接:
ssh -p 2222 username@remote_server
3.2 创建并复制 SSH 密钥
1除非需要兼容旧系统的特殊场景外,推荐优先使用强度更高的 Ed25519 算法生成密钥:
ssh-keygen -t ed25519
2将公钥上传到远程服务器:
ssh-copy-id username@remote_server
3如果私钥不在默认路径,需要指定私钥文件路径:
ssh -i /path/to/private_key username@remote_server
4限制私钥权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519









最新评论
提供snap包没意见,但是移除deb,还把deb改成虚包指向snap,实在是让人作呕
为什么关机关电源后,开机时打开电源就开机了。对电脑有损伤吗?
有多亮,是blingbling的吗🤣
这个网站眼前一亮