现在是“你电脑直接 SSH 到 EC2”,后续会改成 “你电脑先 SSH 到堡垒机,再从堡垒机跳到目标 EC2”。

  1. 现在:公网直连 EC2

  你的电脑
    │ SSH
    ▼
  目标 EC2 公网 IP

  特点:

  - 目标 EC2 有 公网 IP / Elastic IP
  - 安全组通常需要开放 22 端口给你的办公网络或固定 IP
  - 连接方式简单,例如:

  ssh -i key.pem ec2-user@目标EC2公网IP

  优点:

  - 配置简单
  - 连接链路短
  - 排查问题容易

  缺点:

  - 每台 EC2 都暴露在公网,攻击面更大
  - 如果机器多,每台都要维护公网 IP、安全组规则、SSH 权限
  - 后续安全合规上通常不推荐所有业务机器都公网可达

  ---
  2. 后续:通过堡垒机访问 EC2

  你的电脑
    │ SSH
    ▼
  堡垒机 公网 IP:18.17.17.5
    │ SSH,走内网
    ▼
  目标 EC2 内网 IP

  特点:

  - 只有 堡垒机有公网 IP
  - 目标 EC2 不再允许公网直连,甚至可以没有公网 IP
  - 目标 EC2 的安全组只允许来自堡垒机的 SSH 访问
  - 连接目标 EC2 时,通常使用 内网 IP,例如 10.x.x.x / 172.31.x.x

  优点:

  - 更安全,公网入口集中到堡垒机
  - 目标 EC2 不暴露公网
  - 权限、审计、登录入口更容易统一管理
  - 适合生产环境、多台服务器场景

  缺点:

  - 配置稍微复杂
  - 如果堡垒机不可用,会影响访问后端 EC2
  - SSH 客户端需要配置跳板链路

  ---
  3. Termius 里面的 Host Chaining 是什么?

  截图里的 Host Chaining 就是 Termius 的“跳板机连接”功能。

  它的作用是:

  先连接 A 机器,再通过 A 连接 B 机器

  在你的场景里:

  Termius
    -> 堡垒机 18.17.17.5
    -> 目标 EC2 内网 IP

  也就是说,Termius 会帮你自动完成类似下面这个命令的效果:

  ssh -J user@18.17.17.5 ec2-user@目标EC2内网IP

  其中:

  - 18.17.17.5 是堡垒机公网 IP
  - 目标EC2内网IP 是业务 EC2 的私有 IP
  - -J 表示 ProxyJump,也就是通过跳板机连接

  ---
  4. Host Chaining 和 Proxy 的区别

  Termius 里你看到的两个功能:

  - Host Chaining
  - Proxy

  它们容易混淆,但用途不同。

  Host Chaining:SSH 跳板机

  适合这种场景:

  本地电脑 -> 堡垒机 -> 内网 EC2

  它是 SSH 层面的跳转。

  你连接的最终目标还是 SSH 服务器,只是中间经过一个 SSH 跳板。

  典型用途:

  - 访问没有公网 IP 的 EC2
  - 访问 VPC 内部机器
  - 生产服务器 SSH 管理

  推荐你们后续访问 EC2 用这个。

  ---
  Proxy:网络代理

  Proxy 更像是:

  本地电脑 -> HTTP/SOCKS 代理 -> 目标

  它通常用于网络代理,而不是标准的 SSH 跳板链。

  典型用途:

  - 通过 SOCKS5 / HTTP proxy 上网
  - 某些网络环境下绕过网络限制
  - 代理 TCP 连接

  如果你们只是通过堡垒机 SSH 到内网 EC2,通常不需要用 Proxy,直接用 Host Chaining 更合适。

  ---
  5. 对比总结

  ┌──────────────────────────┬─────────────────────────┬─────────────────────────────────────┐
  │           项目           │      公网直连 EC2       │             通过堡垒机              │
  ├──────────────────────────┼─────────────────────────┼─────────────────────────────────────┤
  │ 连接方式                 │ 本地直接 SSH 到目标 EC2 │ 本地先 SSH 到堡垒机,再跳到目标 EC2 │
  ├──────────────────────────┼─────────────────────────┼─────────────────────────────────────┤
  │ 目标 EC2 是否需要公网 IP │ 需要                    │ 不需要                              │
  ├──────────────────────────┼─────────────────────────┼─────────────────────────────────────┤
  │ 暴露面                   │ 每台 EC2 都可能暴露公网 │ 只有堡垒机暴露公网                  │
  ├──────────────────────────┼─────────────────────────┼─────────────────────────────────────┤
  ├──────────────────────────┼─────────────────────────┼─────────────────────────────────────┤
  │ 安全性                   │ 较低                    │ 更高                                │
  ├──────────────────────────┼─────────────────────────┼─────────────────────────────────────┤
  │ 运维复杂度               │ 简单                    │ 稍复杂                              │
  ├──────────────────────────┼─────────────────────────┼─────────────────────────────────────┤
  │ 适合场景                 │ 测试环境、临时机器      │ 生产环境、内网服务器                │
  ├──────────────────────────┼─────────────────────────┼─────────────────────────────────────┤
  │ Termius 配置             │ 普通 Host               │ Host Chaining                       │
  ├──────────────────────────┼─────────────────────────┼─────────────────────────────────────┤
  │ 目标 EC2 地址            │ 公网 IP                 │ 内网 IP                             │
  └──────────────────────────┴─────────────────────────┴─────────────────────────────────────┘

  ---
  6. 后续 Termius 大概这样配

  第一步:配置堡垒机 Host

  Host 名称可以叫:

  堡垒机

  Host/IP:

  18.17.17.5

  用户名根据 AMI 可能是:

  ubuntu

  或:

  ec2-user

  认证方式使用对应 SSH key。

  ---
  第二步:配置目标 EC2 Host

  目标 EC2 的 Host/IP 不再填公网 IP,而是填 内网 IP,例如:

  172.31.x.x

  然后在这个目标 Host 里设置:

  Host Chaining -> 选择堡垒机

  这样以后连接目标 EC2 时,Termius 会自动:

  先连堡垒机,再通过堡垒机连目标 EC2

  ---
  一句话总结:

  ▎ 现在是每台 EC2 都可以被你从公网直接 SSH;后续是只有堡垒机能从公网 SSH,其他 EC2 只能通过堡垒机走内网访问。Termius 里的 Host Chaining 就是用来配置这种跳板机访问方式的。

更多推荐