SSH跳板机是企业级Linux运维中用于集中管理内网服务器访问的安全架构,作为唯一对外的SSH入口,所有连接需先经跳板机再转至目标主机。其核心优势包括缩小暴露面、集中认证审计和精细化权限控制。部署步骤:1. 选用最小化系统并加固,仅开放SSH端口;2. 配置sshd禁止root登录、禁用密码认证、限制用户组访问;3. 创建普通运维账户并部署SSH密钥;4. 内网服务器仅信任跳板机IP,配置公钥免密登录。进阶安全措施包括启用双因素认证、使用SSH ProxyJump简化连接、开启auditd日志审计并对接集中日志系统,以及部署高可用冗余跳板机并通过自动化工具同步配置。关键原则为最小权限、密钥认证、全程审计与定期维护,确保架构安全可控。

在企业级 Linux 运维中,SSH 跳板机(Bastion Host)是一种常见的安全架构设计,用于集中管理对内网服务器的访问。它作为唯一对外暴露的 SSH 入口,所有远程登录必须先连接跳板机,再从中跳转到目标主机,从而减少攻击面、提升审计能力。
什么是 SSH 跳板机
SSH 跳板机是一台位于公网边缘、经过严格加固的 Linux 服务器,专门用于中转 SSH 连接。内部服务器不直接对外开放 SSH 端口(22),只允许来自跳板机的连接。这种结构常用于 VPC 或私有网络环境中。
核心优势:- 缩小暴露面:仅跳板机开放 22 端口
- 集中身份认证与审计:所有操作可记录
- 便于权限控制:基于用户/角色分配访问权限
部署跳板机的基本步骤
以下是构建一个基础但安全的跳板机架构的关键流程。
1. 选择并初始化跳板机服务器- 使用最小化安装的 Linux 发行版(如 CentOS Stream、Ubuntu Server)
- 关闭不必要的服务和端口
- 配置防火墙(firewalld 或 iptables),仅开放 SSH 端口
- 修改默认 SSH 端口(可选,防扫描)
编辑 /etc/ssh/sshd_config 文件:
- 禁止 root 登录:
PermitRootLogin no - 禁用密码认证,强制使用密钥:
PasswordAuthentication no - 限制允许登录的用户组:
AllowGroups sshusers - 设置空闲超时断开:
ClientAliveInterval 300和ClientAliveCountMax 2
重启 SSH 服务:systemctl restart sshd
- 添加普通用户:
useradd -m opsuser - 设置强密码策略(即使不用密码也建议设)
- 将用户加入指定组:
usermod -aG sshusers opsuser - 部署公钥到 ~/.ssh/authorized_keys
- 在每台内网服务器上创建对应用户
- 将跳板机上用户的公钥写入目标主机的
~/.ssh/authorized_keys - 确保内网服务器的防火墙仅允许跳板机 IP 访问 22 端口
提升安全性与可用性
生产环境需进一步增强防护机制。
结合 Google Authenticator 实现动态验证码 + 密钥双重验证,显著提高账户安全性。
使用 SSH ProxyJump 简化跳转客户端可通过以下命令一键连接内网主机:
ssh -J bastion-user@bastion-ip internal-user@internal-host
或配置 ~/.ssh/config:
Host jump HostName bastion-ip User bastion-user IdentityFile ~/.ssh/id_rsa_bastion Host server-a HostName 192.168.1.10 User opsuser ProxyJump jump
之后直接运行 ssh server-a 即可自动跳转。
- 启用
auditd监控关键操作 - 记录所有用户的 SSH 登录行为
- 配合集中日志系统(如 ELK、Graylog)做分析
高可用与灾备考虑
单点跳板机会带来风险,建议:
- 部署至少两台跳板机构成冗余
- 使用 DNS 轮询或负载均衡器分发连接(注意保持会话一致性)
- 同步密钥和用户配置(可用 Ansible 自动化)










