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

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

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 符合预期
  • 状态目录保持 0700authorized_keys 与主机私钥保持 0600
  • 通过可信的服务器终端核对首次证书指纹
  • 设置资源配额、观察拒绝日志并记录升级与回滚步骤