命令和终端
两者都需要:你的浏览器里有签名密钥(「设置 → 签名密钥」),目标机器信任这把密钥,并且机器的权限级别允许。

执行命令
- 打开「命令」页,或在机器详情页点「执行命令」。
- 选一台或多台在线机器,输入命令。命令以 root 身份用
sh -c执行,管道和&&都能用。 - 点「签名并执行」,看清确认框里的内容。浏览器签名后,每台机器会先核对签名、目标机器、有效期和自己的权限级别,再执行。
各台机器的输出边执行边显示。每个结果会显示退出码,或者没有执行的原因(例如 rejected: commands are disabled on this machine (permission: monitor))。
每台机器上的限制:
| 限制 | 值 |
|---|---|
| 超时 | 默认 60 秒,最长 1 小时 |
| 保留的输出 | 1 MB,超出部分截断 |
| 同时执行 | 4 条 |
| 签名有效期 | 5 分钟,每条命令只能执行一次 |
长时间运行的任务
客户端和服务端的连接一断,正在执行的命令就会被结束。升级、重启网络这类可能导致断线的操作,请放到后台执行,过后再看结果:
nohup sh -c 'apt-get update && apt-get -y upgrade' > /tmp/upgrade.log 2>&1 &
systemd 系统上也可以用 systemd-run --unit=upgrade …。
网页终端
在机器详情页点「终端」,会打开一个 root 登录 shell(bash -l,没有 bash 时用 sh),是真正的终端设备,vim、top、htop 都能用。窗口可以调整大小,关闭页面就结束会话。每台机器最多同时开 4 个终端。
终端要求机器的权限是 full。
提示
签名的只是"打开终端"这一步,之后的每次按键不再签名。不用的终端请及时关闭。
审计记录
「命令 → 历史记录」列出每条命令和每次终端会话:时间、机器、签名密钥和结果。点结果可以重新查看输出。
每个客户端也会把执行过的命令写进它自己的日志,服务端被攻破后删不掉:
journalctl -u fleetd-agent | grep exec # systemd
logread -e fleetd # OpenWrt