跳转到内容

审计日志

审计日志记录谁在何时连接了哪台团队主机。每位成员的设备写入自己的事件并签名,管理员在自己的设备上验证整个日志,而不是信任服务器。

连接到团队主机时,会在本地记录一个会话开始事件,即使离线、即使 Teams 处于锁定状态。该事件不需要口令:下次同步时,设备用自己的密钥签名,把它链接到该设备的上一个事件并上传,同时带上会话实际开始的时间。

服务器会补充收到每个事件的时间以及来源地址。这两个字段让你可以比较设备报告的内容与服务器看到的内容。

管理员用 bssh teams audit 读取日志:

bssh teams audit platform
bssh teams audit platform --host db-prod@platform
bssh teams audit platform --member ana@example.com --since 2026-01-01
选项 限定范围
--host <CONNECTION> 某条团队连接的事件
--member <EMAIL> 某位成员的事件
--since <DATE> 自某个日期(YYYY-MM-DD)或 RFC 3339 时间起发生的事件
--limit <LIMIT> 拉取多少个事件,从最新开始(默认值和最大值:1000)

命令会显示每个事件的时间、成员和设备、事件、主机、来源地址和检查结果。命令行中的时间使用机器的本地时间。桌面应用以 UTC 显示。

每个事件都在你的设备上验证:用作者设备的密钥验证签名,并把每台设备的事件链与其前一个事件核对。不会取信服务器的任何内容。

  • 被编辑或伪造的事件无法通过签名检查。
  • 来自团队未知设备的事件显示为 Unknown device。
  • 属于其他团队的事件显示为 Other team。
  • 被重排或重复的事件会破坏其设备的事件链,被删除的事件则会在链中留下缺口。

出现问题时,bssh teams audit 会打印问题并以非零状态退出,因此该命令可以用于合规检查。

日志按从新到旧拉取,默认 1000 个事件,使用 --limit 时最多 1000 个。如果拉取达到上限,命令会说明它只显示最新的事件。已拉取的事件仍会验证,但更早的事件没有检查;可用 --since 或 --host 缩小范围来覆盖它们。

有一项限制无法仅靠日志本身发现。如果服务器在成员上传更新的事件之前删除了该成员最新的事件,剩下的日志仍然有效。该成员的下次同步会报告审计链错误。桌面应用会一直显示该警告,并在侧边栏的 Teams 条目上保留,直到之后的某次同步成功。在命令行中,请在同步后留意审计链消息。

打开团队并选择 Audit log。标签页一打开就会验证日志,每次更改筛选条件或选择 Verify again 时也会重新验证。仅管理员可用。

横幅会给出三种结论之一:

  • Verified on this device:每个事件都已检查,从每台设备的第一个事件开始。
  • Verified, partial: older events weren’t checked:显示的事件有效,但更早的事件没有检查,因为只拉取了最新的事件,或日志并非从某台设备的第一个事件开始。
  • Verification failed: treat this log as tampered:问题会列出;在信任这些行之前,请在另一台管理员设备上检查日志。

按 Member、Host 和 Since (UTC) 筛选,并选择 Export CSV 保存副本。Check 列会为每个事件显示 Valid、Bad signature、Unknown device 或 Other team。时间为 UTC。

Audit log 标签页:结论、筛选、逐事件检查和 CSV 导出