跳到正文

不保存客户 SSH 账号,如何完成现场软件更新

可以把执行入口从“控制面远程登录主机”改为“站点本地 Agent 领取任务”。这样,控制面无需保存客户的 SSH 账号、密码或私钥,仍能创建已经定义和授权的软件更新任务,由站点 Agent 主动领取并执行;代价是 Agent 必须在站点本地获得完成任务所需的最小权限。

控制面不保存主机账号,任务由站点 Agent 受控执行

执行入口从远程登录转到站点本地

传统方式通常由操作人员或中心系统通过 SSH/SFTP 进入服务器,再上传文件、执行脚本和检查日志。跨客户保存这些账号,会带来凭据分发、轮换、离职交接和泄露处置问题。

Agent 模式不要求控制面取得主机终端。站点 Agent 主动连接控制面,领取包含输入、参数和步骤的任务,在本地执行后回传状态、日志和结果。火星叔叔发布助手采用的就是这一网络与凭据边界。

不保存 SSH 账号不等于无需权限

控制面不持有主机账号,只是把权限边界留在站点内。Agent 仍可能需要读取安装包、写入目标目录、停止或启动服务;证书、数据库等任务还可能需要不同权限。

NIST 对最小权限的定义是:用户或进程只取得完成指定任务所必需的资源和授权。落地时应避免让所有模板共享一个长期、全能的管理员权限。

用权限清单审查每类任务

对每个模板分别列出:

  • 需要读取和写入哪些目录;
  • 允许管理哪些服务;
  • 是否需要 sudo,能够执行哪些明确动作;
  • 本地密钥、数据库账号和配置由谁保管;
  • 失败时谁能恢复,恢复需要什么权限。

任务、日志和软件包中都不应夹带明文密码。高风险输入要有独立的保管和注入方式。

仍然不能省略的安全控制

出站连接不能代替身份认证和传输加密。控制面要识别 Agent,Agent 也要确认控制面;创建者是否有权向某站点下发某模板,需要单独授权。软件包和任务内容还要校验完整性,并记录执行目标、步骤和结果。

因此,准确说法是“不由控制面集中保存客户主机账号”,而不是“不需要账号和权限”。完全禁止安装 Agent、禁止任何出站访问或要求中心提供任意远程终端的现场,需要采用别的方式。

进一步了解可查看部署与安全多站点应用发布方案。如果希望验证这一边界,可下载体验版,先在非生产站点为一个更新模板配置最小权限。

参考资料

重复的现场操作,一次定义,多站点执行