Astra Shell 文档下载 macOS
文档目录 当前:第一次连接

文档 / 开始使用 / 第一次连接

GET STARTED · 02

打开第一个远端 Shell。

下面以单用户 Rootless 模式为例,完成服务端初始化、主机认证和第一次连接。

开始前准备

以下命令全部在远端 Linux 主机上、以准备使用 Astra 的普通 Unix 用户运行。你需要先通过现有 SSH、云厂商控制台或本地终端登录该主机,并确认 git --versioncargo --version 都能正常输出。Rootless 模式不需要 root 权限。

获取并初始化服务端

服务端源码来自公开仓库 github.com/astra-sec/astra-shell。在远端普通用户的主目录中执行:

git clone https://github.com/astra-sec/astra-shell.git
cd astra-shell
cargo build --locked --bins

构建成功后,当前目录应为刚克隆的 astra-shell,并包含 target/debug/astrad。接着初始化只属于该用户的服务端状态:

./target/debug/astrad init --state-dir "$HOME/.local/share/astra-shell"

这会创建主机证书、主机私钥、instance ID 和 Rootless 专用的 authorized_keys。不要删除或重新初始化这个目录,否则客户端会把主机识别为身份已变化。

授权客户端密钥

  1. 在 Astra Shell 客户端打开“密钥管理”。
  2. 选择“生成”,创建推荐的 Ed25519 Key;如已有 OpenSSH 私钥,也可以选择“导入”。
  3. 在该 Key 的菜单中选择“复制公钥”。
  4. 回到远端 Linux 终端,用文本编辑器打开下面的文件,把复制的完整公钥粘贴为单独一行,然后保存。
nano "$HOME/.local/share/astra-shell/authorized_keys"
chmod 600 "$HOME/.local/share/astra-shell/authorized_keys"

如果主机没有 nano,请改用已安装的其他文本编辑器。文件中的公钥可以共享给服务端用于认证;私钥不能复制到服务器,只保留在客户端 Keychain 中。

启动并开放 UDP

仍在远端 astra-shell 源码目录中启动 daemon:

./target/debug/astrad serve \
  --listen 0.0.0.0:4433 \
  --state-dir "$HOME/.local/share/astra-shell" \
  --session-root "$HOME"

上面将 --session-root 设为 $HOME,表示新 Shell 和 Files 只能访问运行 daemon 的这个用户主目录。该命令以前台方式运行;关闭当前终端会停止服务。确认首次连接可用后,再使用该用户自己的 systemd user service 或其他进程管理器保持运行。

在同一个可信的远端终端中输出主机证书指纹:

printf 'SHA256:'
openssl dgst -sha256 -binary "$HOME/.local/share/astra-shell/host-cert.der" | base64 | tr -d '\n'
printf '\n'

保留这行 SHA256:...,第一次连接时逐字核对。

创建连接

  1. 在 Astra Shell 中选择“添加 Host”,连接类型必须选择 Astra,不是 SSH。
  2. 地址填写可从当前设备访问的域名或 IP,不要添加 https://;端口填写 4433
  3. 用户名填写远端运行 astrad 的 Unix 用户;可在远端运行 whoami 确认。
  4. 选择刚才生成或导入的 Key。
  5. 首次连接时,将客户端显示的 SHA-256 指纹与远端命令输出逐字比较,一致后再确认信任。

验证接续

连接成功后新建一个 Shell,先运行 whoamipwd,确认远端用户与目录符合预期。再运行一个持续几分钟的安全命令,临时断开客户端后重新连接;你应该回到同一个 Terminal,而不是创建新的 PTY。