fleetsh / 文档

安全设计

密码保存在系统凭据库中,SSH 登录前会验证服务器密钥。 本页说明凭据、主机密钥和连接的处理方式。

凭据与敏感信息

清单仅保存凭据引用,不保存凭据值。 严格解析拒绝明文密码和不支持的字段,错误消息不回显源码行。 密码和密钥口令使用隐藏终端输入;拒绝会回显的输入或管道输入。 替换凭据必须显式指定 --replace。

Windows Credential Manager、macOS Keychain 和 Linux Secret Service 保存凭据值。 凭据库出错不会回退到明文存储。macOS 使用 security -i 和标准输入, 因此凭据不会进入进程参数。凭据最大为 2560 字节。 Agent 套接字和私钥保留在本机。

sudo 密码通过 SSH 通道标准输入传送。 命令不会使用 echo password 或拼接凭据值。 已知凭据会从缓冲的执行输出和诊断中脱敏;无法识别任意应用产生的秘密。 交互 shell 输出原样传递,以保留终端行为。 目前不持久保存执行日志或历史。

主机身份

目标和每一层跳板均执行严格的 known_hosts 校验。 首次连接显示指纹并要求交互输入 y;自动化遇到未知密钥会失败。 变化的密钥直接拒绝,不会重新弹出首次信任提示。 信任写入加锁,并在确认后重新校验。

hostkey reset 需要确认或 --yes。 共享、通配符或带标记的记录需要手动编辑, 避免重置单台主机时静默删除更广泛的信任。

动作与资源限制

执行限制并发,设置连接和命令超时,支持取消、保活和输出上限。 用户提供的 shell 命令按意图在远程 shell 中执行。 生成的动作命令使用固定模板和安全的 shell 引用。

更新预演仅探测系统;任意预检查失败都会阻止全部更新。 实际更新和重启会显示目标别名,并要求确认或显式 --yes。 重启默认并发为 2,成功需要新的启动标识及 uptime 探测通过。

文件与平台检查

清单更新使用协作锁、私有临时文件和原子替换。 初始化不会覆盖已有文件。 拒绝清单和主机密钥文件的符号链接。 Unix 新建目录和文件分别使用 0700、0600,Windows 使用目录访问控制列表。

清单备份不包含凭据值,单凭引用名称不能恢复密码。 测试使用本地环境和临时系统凭据条目,无需真实 VPS。 路线图 区分已完成的测试覆盖和剩余发布工作。

报告漏洞

请使用 私密漏洞报告。 另见仓库中的 安全政策。