腾讯云服务器运维通道:跳板机、SSH 隧道与堡垒机的工程做法

腾讯云服务器运维通道:跳板机、SSH 隧道与堡垒机的工程做法

在腾讯云服务器跳板机这件事上,我见过最多的错误做法,就是图省事给每一台机器都绑弹性公网 IP、开 22 端口、允许密码登录。等某天日志里冒出成千上万条爆破记录,才发现内网一堆机器都暴露在外。运维通道不是一个"能连上就行"的问题,它同时牵扯到最小暴露面、身份可追溯和出事后的止损能力。这篇只讲防御侧和合规留痕,不涉及任何绕过手段,重点是把一套中小团队也能落地的通道方案讲清楚。

为什么不该给每台云服务器开公网 22

每开一个公网 22,就等于多一个可以被全世界扫描和暴力尝试的入口。安全组放行 0.0.0.0/0 的 22 端口,本质上是把登录界面挂在互联网上,剩下的只是时间问题。真正健壮的做法是让绝大多数云服务器 CVM 只保留内网访问,把公网入口收敛到一到两台入口机上,其余机器从内网进。 暴露面从"几十个"收敛到"一个",运维成本不升反降,因为你要盯的日志和要轮换的凭证都少了一个数量级。

通道路由的规划应该是分层的:入口机放在有公网的战略位置,业务机放在内网子网,数据库和中间件再放更深一层,只有前端能连应用、只有应用能连数据库。安全组按"谁需要连谁"来配,而不是按"开放给谁"来配。这条原则比任何具体工具都重要,工具只是实现手段。

跳板机的最小可用实现

跳板机不需要多复杂,一台小规格实例就够。关键在四个收口动作:安全组只放行来自你自己固定出口 IP 的 22 端口,不要再开 0.0.0.0/0;登录只允许密钥,配置里关掉密码认证;禁用 root 直接登录,改用普通账号加 sudo;把相关操作记进日志。这几步做完,一台跳板机就比裸奔的几十台机器安全得多。

关闭密码登录对应的配置项是 PasswordAuthentication no,同时把 PermitRootLogin 设成 no 或者 prohibit-password。密钥登录要配合 authorized_keys 的权限检查,~/.ssh 目录 700、authorized_keys 600,权限不对 SSH 会直接拒绝使用密钥,这是常见的排查点。跳板机本身要尽量精简,别在上面跑业务,减少它能被利用的面。

如果团队有多个人用同一个跳板机,最好给每人一个独立系统账号和独立密钥,而不是共用 root。这样做的好处是登录日志能定位到具体的人,出了事能追溯,也方便离职时单独回收。用共用账号的跳板机,日志里全是同一个人,审计价值几乎为零。

SSH 三种端口转发:本地、远程、动态

SSH 的端口转发是运维效率的关键,很多人只会用其中一种。本地转发(-L)是把本地端口的流量通过 SSH 通道送到远端网络里的某个服务,适合从本地临时访问内网的数据库、缓存面板;远程转发(-R)是把远端的端口通过通道反向映射回本地,适合把内网服务临时暴露给外部测试,或者让内网机器回连你的调试端;动态转发(-D)是开一个本地 SOCKS 代理,让浏览器或命令行工具走通道访问整个内网网段,适合临时浏览多个内网服务。

三者的适用边界要记清楚。本地转发是最常用的,一次连一个目标;动态转发灵活但审计较弱,因为流量是代理性质的,不适合长期开启;远程转发在配置不当的时候容易把内网服务暴露出去,用完要及时关掉。这些通道都建立在已有 SSH 连接之上,用的是加密隧道,所以它们不会增加公网暴露面,但会绕过一些基于端口的安全策略,用之前要和团队的安全基线对齐。

远程转发还有一个隐患:如果跳板机允许 GatewayPorts,反向映射出来的端口可能监听在所有网卡上,等于无意中开了个公网入口。默认保持关闭是更安全的做法。

ProxyJump 与 SSH 配置文件的正确写法

每次都手敲 ssh -J 或者多层隧道很累,正确做法是写进 ~/.ssh/config。给入口机和目标机各起一段别名,入口机配好密钥和用户名,目标机用 ProxyJump 指向入口机别名,之后一条 ssh 目标别名 就能经跳板直接落到内网机器上。多级跳转就写多级 ProxyJump,中间用逗号隔开,SSH 会自动帮你串起整条链路。

配置里还应该顺手加上几个稳定性的选项:ServerAliveInterval 和 ServerAliveCountMax 防止空闲被中断,TCPKeepAlive yes 保持连接,StrictHostKeyChecking 在受控环境里可以设为 accept-new 以减少首次连接的阻塞,但在安全要求高的环境里应该保持严格校验并预置 known_hosts。用配置文件而不是记忆命令,是让通道可复制、可交接的前提,换个人来运维,照着这份配置就能连上,而不是靠某个老员工的肌肉记忆。

还有一个容易被忽略的点:config 里的别名应该和机器角色绑定,而不是和 IP 绑定。当入口机换 IP 或者扩容时,只改一处即可。IP 写死在文档里、又散落在每个人的历史命令里,是运维混乱的开始。

会话审计与命令留痕

通道打通只是第一步,能留下证据才算完整。命令留痕常见有三种做法:在入口机上把所有人拉进统一的 ~/.bash_history 并加时间戳、通过 SSH 的 ForceCommand 把会话交给记录程序、或者用统一的审计代理转发。中小团队最容易落地的是第一种加上集中收集,把登录记录和命令记录一起送到日志服务里,保留足够长的周期。

留痕的价值不只在安全事件,日常运维同样用得上。谁在什么时候改了哪台机器的配置、重启了什么服务,一查日志就清楚,出事故复盘时不用互相回忆。留痕还要注意保护隐私和合规边界,别把会话里的敏感数据明文外泄,日志本身也要按最小权限访问。

合规要求高一些的场景,比如等保或者金融相关,通常要求会话级的完整录制,包括输入的命令和屏幕输出,能回放。这就要求上一台堡垒机,而不是靠脚本拼凑。判断标准很简单:如果外部审计要你在几小时内提供某个时间点某个人在某台机器上的全部操作,你的现有方案能不能拿得出来。

堡垒机与 CAM 的分工

堡垒机解决的是"谁能连、连了做什么、全程可回放"的问题,它把入口统一、身份统一、审计统一。但堡垒机不解决云资源本身的权限问题,那部分要靠访问管理 CAM 来做。两者是配合关系,不是替代关系:堡垒机管服务器登录这一层,CAM 管的是谁能操作腾讯云 API、能看哪些资源的账单和配置。

一个常见误区是只上了堡垒机,却让每个人都用同一套主账号 AK/SK 去调云 API,等于绕过了所有管控。正确的做法是为每个运维人员建 CAM 子账号,按角色分配最小权限策略,敏感操作开启多因素认证,再通过操作审计把 API 调用记录下来。服务器登录有堡垒机,云平台操作有 CAM 和操作审计,这两条线都留痕,整体才闭环。

需要提醒的是,运维通道最终要能追溯到真实的实名主体。用别人的腾讯云实名账号来承载运维身份,会在审计链上留下断点,一旦出问题责任说不清,也不符合实名制的基本要求。规范做法始终是用自己主体合规开户,再通过 CAM 子账号做人员分工。

密钥集中管理与轮换

密钥是通道的钥匙,管理不好,前面做的所有收口都会失效。基本原则有几条:私钥不落地到不该在的地方,能放 SSH 代理就用代理转发而不是把私钥拷到跳板机;每台机器、每个人、每个用途用不同的密钥,别一把密钥打天下;离职或密钥疑似泄露时能单独吊销,而不是被迫全网换。

轮换要有节奏。给密钥设定有效期,到期强制更新,并把公钥的分发做成可重复的流程,而不是手工往每台机器的 authorized_keys 里贴。规模大一点可以借助配置管理工具统一分发公钥,保证新增机器自动带上正确授权。私钥存储在本地要有口令保护,能用硬件令牌或密钥代理再加一层就更稳。

密钥清单本身要维护,记录哪把钥匙对应谁、用于哪些机器、什么时候到期。没有清单的密钥管理等于没有管理,出了事你连该吊销哪把都不知道。

通道被攻破后的止损顺序

再严的方案也可能被攻破,关键是止损要快、有顺序。先切断入口:把入口机的安全组收紧或者直接下线实例,先止血再排查。然后吊销可能泄露的密钥,在入口机和所有相关机器上移除对应的公钥,让旧钥匙立即失效。接着检查登录日志和操作记录,确认攻击者进到了哪些机器、动过什么,尤其要看有没有新建账号、改动公钥、加计划任务或者外联行为。再往后是重置受影响系统的凭证、检查是否横向移动到了数据库和内网其他节点。最后才是恢复业务和复盘通道本身的弱点。

止损顺序里最容易漏的是横向移动的排查。很多人只看了入口机,没意识到攻击者可能已经用入口机上的密钥跳到了其他机器。所以入口机能连到的每一台机器都要核。下面这张表把几种常见通道方案放在一起对比,帮助你按团队规模选一个起点。

通道方式 典型场景 公网暴露面 审计与留痕 适用规模

每台直开公网 22 临时排障 每台一个公网入口 基本没有 不推荐任何规模

跳板机加密钥登录 中小团队日常运维 仅入口机一个入口 依赖 shell 历史记录 数台到数十台

ProxyJump 多级跳转 分区隔离与内网分层 仅入口机暴露 依赖集中日志收集 数十台到上百台

本地与远程端口转发 临时访问内网服务 复用已有 SSH 通道 依赖 SSH 会话日志 排障与联调场景

动态 SOCKS 代理 临时浏览内网多个服务 复用已有 SSH 通道 较弱,需要额外记录 临时使用为宜

堡垒机集中审计 有合规与等保要求 统一入口加双因素 全量命令录制可回放 中大型组织

FAQ

Q:小团队只有几台服务器,也要上跳板机吗?

A:要,但不用上重的。一台小规格实例做入口,安全组只放行你的固定出口 IP,关密码登录、禁 root 直连、每人独立密钥,这套组合十几分钟就能配好。它的价值不是复杂,而是把暴露面从几台收敛到一台,并且在出事时有一个明确的止血点。

Q:本地转发和动态转发到底该用哪个?

A:看你要访问几个目标。只连一个内网服务用本地转发,明确、审计清晰;要临时浏览内网多个服务、又不想一条条建通道,用动态转发开 SOCKS。日常长期通道选本地转发,动态转发用完就关,别长期挂着。

Q:命令留痕会不会侵犯隐私,合规上要注意什么?

A:留痕记录的是运维操作,目的是可追溯和事故复盘,这和合规要求是一致的。注意事项有两点:日志本身要加密存储、按最小权限访问,避免会话里的敏感信息泄露;留痕的范围和告知方式要按公司制度明确,让运维人员知情。这是制度建设问题,不只是技术问题。

Q:堡垒机和跳板机是不是二选一?

A:不是。跳板机是收敛入口的最小实现,堡垒机在跳板机的基础上加了身份统一、完整会话录制和权限编排。规模小、无强合规要求时跳板机够用;一旦要应对等保审计或者人员流动频繁,堡垒机的回放能力就值回成本。两者和 CAM 是叠加关系。

Q:密钥泄露了第一时间做什么?

A:按顺序做三件事:先收紧或下线入口机切断通道,再在所有相关机器上移除对应公钥让旧钥匙立即失效,然后翻登录和操作日志确认影响范围,特别排查有没有横向移动到其他机器。做完止血再谈重置凭证和恢复业务,顺序不能反。

结语

腾讯云服务器运维通道的核心矛盾,是便利和安全的平衡,而平衡的答案不是"开得少"或者"管得严",而是入口收敛、身份独立、操作留痕这三件事都做到位。落地时可以先从三步做起:给所有业务机撤掉公网 22、把入口收到一台跳板机并只放行固定 IP、给每个人配独立密钥而非共用账号。 之后再按团队规模决定要不要升级到堡垒机。如果你不确定现有通道的暴露面到底有多大,可以把当前的公网入口清单、安全组规则和登录方式整理出来,我们服务过不少客户,可以帮你按最小暴露面的思路梳理一版收紧方案,通道这种事,早收一天少一分风险。

如果需要更深入咨询了解可以联系全球代理上TG:jinniuge 他们在云平台领域有更专业的知识和建议,他们有国际阿里云,国际腾讯云,国际华为云,aws亚马逊,谷歌云一级代理的渠道,客服1V1服务,支持免实名、免备案、免绑卡。开通即享专属VIP优惠、充值秒到账、官网下单享双重售后支持。不懂找他们就对了

3 .0