Astra Shell 文档下载 macOS
文档目录 当前:Managed 部署

文档 / 部署与运维 / Managed 部署

OPERATIONS · MANAGED

用 gateway 服务多个系统用户。

Managed 模式让 root gateway 只处理入口与身份分派,每个 Unix UID 的长期 worker 在降权后持有自己的终端与文件。

使用前提

Managed 模式面向需要让多个既有 Linux 系统账户登录同一入口的管理员。它需要 root 安装和运行 gateway;如果只有你自己的一个账户,请优先使用 Rootless。先按 Rootless 页的“获取与构建”克隆仓库,并确认当前目录为 astra-shell

进程拓扑

root gatewayUID workerWorkspace / Terminal

gateway 不直接长期拥有用户 PTY;认证后,连接交给对应 UID 的非特权 worker。

安装 systemd 服务

以下命令会把 Release 二进制和仓库内的 Managed 服务模板安装到系统路径,并立即启动 UDP 4433 gateway:

cargo build --release --locked --bins
sudo install -o root -g root -m 0755 target/release/astrad /usr/local/sbin/astrad
sudo install -d -o root -g root -m 0700 /srv/astra
sudo /usr/local/sbin/astrad init --state-dir /srv/astra
sudo install -o root -g root -m 0644 contrib/systemd/astrad.service /etc/systemd/system/astrad.service
sudo systemctl daemon-reload
sudo systemctl enable --now astrad.service
sudo systemctl status astrad.service

随后在云安全组和主机防火墙中放行 UDP 4433。若要改端口,应先复制并编辑 systemd unit 的 --listen,再执行 systemctl daemon-reload 和重启;只开放 TCP 端口不会让 Astra 连通。

账户认证

服务端从系统 passwd 数据库解析 Host 中填写的用户名,并读取该账户的 ~/.ssh/authorized_keys。每个目标用户都要把客户端“复制公钥”得到的完整单行公钥加入自己的授权文件,并确保 HOME 与 .ssh 归该用户所有、.ssh0700authorized_keys0600。Managed 模式不读取 Rootless 状态目录里的 authorized_keys

Worker 生命周期

  • 每个 UID 最多一个长期 worker。
  • gateway 重启时,既有 worker 可以继续持有 PTY。
  • worker 空闲且没有 Terminal 时默认 600 秒回收。
  • worker 或整机重启不会从磁盘恢复运行中的 Terminal。

运维边界

升级 gateway 前应保留旧二进制和 /srv/astra 备份,并确认当前 worker 与目标版本兼容。不要直接终止仍持有 Terminal 的用户 worker:那会结束该 Unix 用户的全部运行中 Shell。worker 发现、跨版本升级治理、长时间 soak 与故障注入仍需要在具体生产环境中验证;部署前请结合“当前边界”制定维护窗口与回退流程。