OPERATIONS · ROOTLESS
为单个 Unix 用户运行 Astra。
Rootless daemon 适合个人服务器、开发机与单用户环境:进程不需要 root,也不负责跨用户切换。
适用场景
如果只有一个系统用户需要通过 Astra 进入这台主机,Rootless 是更小、更容易审计的部署边界。daemon 直接以该用户身份拥有 Workspace、Terminal 和文件操作。
获取与构建
以将来运行 daemon 的普通 Unix 用户登录 Linux 主机。安装 Git 与稳定版 Rust/Cargo 后,从公开仓库构建:
git clone https://github.com/astra-sec/astra-shell.git
cd astra-shell
cargo build --locked --bins后续命令都假设当前目录仍是这个 astra-shell 仓库。
初始化与授权
./target/debug/astrad init --state-dir "$HOME/.local/share/astra-shell"在客户端“密钥管理”中生成或导入 Key,复制公钥,然后把完整公钥作为单独一行加入以下文件:
nano "$HOME/.local/share/astra-shell/authorized_keys"
chmod 600 "$HOME/.local/share/astra-shell/authorized_keys"Rootless 只读取这个状态目录中的 authorized_keys,不会读取 ~/.ssh/authorized_keys。请备份整个状态目录并保护其中的主机私钥;重新初始化会导致已连接设备报告主机身份变化。
持续运行
./target/debug/astrad serve \
--listen 0.0.0.0:4433 \
--state-dir "$HOME/.local/share/astra-shell" \
--session-root "$HOME"命令以前台运行,适合先验证。正式长期运行应由同一个普通用户的 systemd user service 或同类进程管理器托管,在异常退出后重启,并将日志送往受控设施。仓库附带的 contrib/systemd/astrad.service 是 Managed root gateway 模板,不能原样用于 Rootless。
上线检查
- 安全组、防火墙和 NAT 只开放实际使用的 UDP 端口
- 确认 daemon 的 Unix 用户、Host 中填写的用户名和
--session-root符合预期 - 状态目录保持
0700,authorized_keys与主机私钥保持0600 - 通过可信的服务器终端核对首次证书指纹
- 设置资源配额、观察拒绝日志并记录升级与回滚步骤