系统极客一直在努力
专注操作系统及软件使用技能

如何在 Ubuntu 上安装、配置和开启 SSH 服务

Ubuntu

要通过 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 LTS10.xssh.socket 触发
Ubuntu 24.04 LTS9.xssh.socket 触发
Ubuntu 22.04 LTS8.xssh.service 常驻守护进程
在 Ubuntu 上安装 OpenSSH Server
在 Ubuntu 上安装 OpenSSH Server

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 机制的新版系统,连接激活时会同时返回systemdsshd进程号,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'
启用 SSH 服务、验证 22 侦听端口
启用 SSH 服务、验证 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
使用 SSH 配置片段
使用 SSH 配置片段

2.6 验证配置并重启服务

1配置修改完成后,先用内置工具验证语法和生效配置:

# 检查语法
sudo sshd -t
# 输出最终生效配置
sudo sshd -T
验证 SSH 配置文件语法和最终配置
验证 SSH 配置文件语法和最终配置

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
赞(1)
分享到

评论 抢沙发