OPERATIONS · MANAGED
用 gateway 服务多个系统用户。
使用前提
Managed 模式面向需要让多个既有 Linux 系统账户登录同一入口的管理员。它需要 root 安装和运行 gateway;如果只有你自己的一个账户,请优先使用 Rootless。先按 Rootless 页的“获取与构建”克隆仓库,并确认当前目录为 astra-shell。
进程拓扑
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 归该用户所有、.ssh 为 0700、authorized_keys 为 0600。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 与故障注入仍需要在具体生产环境中验证;部署前请结合“当前边界”制定维护窗口与回退流程。