服务器接入指引
8.133.19.10 也要装同一把公钥我会做的验证备选:导入密钥对(需重启实例)六、为什么不能直接用密码七、拿到访问权后我立刻做什么八、安全约定需求号:REQ-001 / REQ-002 | 用途:W 组(网站)与 F 组(飞书)的硬前置 2026-10-15 环境变更:目标服务器与域名已更换,本文件已同步更新。
一、新环境(目标)
| 项 | 值 | 实测状态 |
|---|---|---|
| 公网 IP | 47.239.25.159 | ✅ ping 通(约 129 ms) |
| 域名 | xiao-ma.xoato.com | ✅ 解析正常,指向上述 IP |
| SSH 端口 | 22 | ✅ 开放 |
| Web 端口 | 80 / 443 | ❌ 不通/被过滤 —— 还没有 Web 服务 |
| 登录用户名 | 需要你确认 | ❓ |
| SSH 认证 | 见下方方案 | ❓ |
重要:新服务器目前只有 SSH,没有 Web 服务。也就是说线上还没有任何页面。 要"承接之前的功能",nginx 站点、
/mcp网关、agent-gateway服务、TLS 证书都要重新部署。
二、旧环境(已决定退役,方案 A)
| 项 | 值 | 实测状态 |
|---|---|---|
| 公网 IP | 8.133.19.10 | ⚠️ 仍在线,http://8.133.19.10 返回 200 |
| 域名 | maxiao.xoato.com | ⚠️ 仍解析正常 |
| 现有内容 | 「椰果的故障诊断 Agent」首页、/test.html、/mcp 网关、/healthz | 运行中 |
这里有个必须你来定的问题:旧服务器上的「故障诊断 Agent」和 /mcp 网关是唯一已经跑通的既有功能,
飞书 aily 现在也在调它。新服务器是白板。
已决定:方案 A —— 旧机退役,全部搬到新机 ✅(2026-10-15,ADR-015)
- ~~A. 旧机退役,全部搬到新机~~ ← 已选此项
- ~~B. 两台并存,新机只承载
/ems/~~ - ~~C. 旧机保留只做备份,新机为主~~
方案 A 的执行细节、步骤顺序、回滚方案见 迁移方案.md。
一条最重要的原则:旧机全程不改、只读 —— 只要旧机不动,回滚就等于改一条 DNS 解析。
三、我需要什么
| 项 | 说明 | 状态 |
|---|---|---|
| 新服务器登录用户名 | 阿里云 Linux 常见为 root;部分镜像为 ecs-user / admin | ❓ 仍缺这一项 |
| 新服务器认证方式 | 走 SSH 公钥(见第四节) | ❓ 待你操作 |
| 旧服务器 SSH 访问权 | 方案 A 要迁走旧机上的网关与配置,必须能登旧机 | ❓ 从未取得 |
| 阿里云安全组放行新机 80/443 | 现实测全不通;安全组是云平台层,机器内改防火墙无效 | ❓ 待你操作 |
| 旧服务器是否退役 | ✅ 已决定:A(ADR-015) | 已确认 |
旧服务器的 MCP_API_KEY | 若要迁移,需要从旧机 /etc/agent/agent.env 读;有 SSH 后我自己读 | 暂不需要你给 |
四、我这边已经准备好了
为避免在聊天里传密码,已在你本机生成专用密钥对:
- 私钥:
C:\Users\25480\.ssh\id_ems_deploy
(只存在你本机,我不会把内容写进任何文件,也不会发到任何地方)
- 公钥:下面这一整行,可以安全公开
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICGUyna0WYgCMgN/qrTlb+Z7a5zXBHGabVHMX0p7xSKS kimi-ems-deploy
五、给两台机器装公钥(不用重启)
- 打开阿里云控制台 → 搜「云服务器 ECS」→ 左侧「实例与镜像 → 实例」
- 找到公网 IP 为
47.239.25.159的那台 → 点右侧「远程连接」 - 选「Workbench」(或 VNC),按提示登录
- 登进去后是一个终端,把下面整段粘进去回车:
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICGUyna0WYgCMgN/qrTlb+Z7a5zXBHGabVHMX0p7xSKS kimi-ems-deploy' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
whoami
uname -a
echo OK
- 看到
OK,把whoami的输出告诉我(root?ecs-user?)—— 这是我还缺的关键一项。
旧机 8.133.19.10 也要装同一把公钥
方案 A 要从旧机迁走网关与配置,所以旧机也得能登。
做法完全一样:阿里云控制台 → 找到 8.133.19.10 那台 → 「远程连接」→ Workbench → 粘上面同一段命令。
旧机是只读使用(只往外导出配置,不改任何文件),但登不上去就迁不了。
我会做的验证
# 新机
ssh -i ~/.ssh/id_ems_deploy <用户名>@47.239.25.159 'hostname; uname -a; whoami'
# 旧机(只读)
ssh -i ~/.ssh/id_ems_deploy <用户名>@8.133.19.10 'hostname; uname -a; whoami'
备选:导入密钥对(需重启实例)
控制台 → ECS → 「网络与安全 → 密钥对」→「创建密钥对」→「导入已有密钥对」→ 粘贴上面的公钥 → 回实例列表「更多 → 密码/密钥 → 绑定密钥对」。 ⚠️ 阿里云会要求重启实例。
六、为什么不能直接用密码
你本机没装 sshpass,ssh 走密码认证时必须在终端人工敲,我无法自动化。
若确实想用密码,替代做法是你手动执行一次:
ssh-copy-id -i ~/.ssh/id_ems_deploy.pub <用户名>@47.239.25.159
输一次密码,公钥就装好了 —— 效果和第五节一样,密码不用告诉我。
七、拿到访问权后我立刻做什么
先只读盘点 + 两台全量备份 + 回滚演练,再谈改动。
完整步骤见 迁移方案.md,这里只列头几步:
- 盘点旧机(只读):nginx 站点配置、站点根目录、
/etc/agent/(只看键名不看值)、
agent-gateway 服务单元、pi 到底是什么、证书签发方式、运行时清单 —— 这是迁移的源
- 盘点新机:OS 版本、已装运行时、端口占用、是否已有站点残留、sudo 权限
- 两台全量备份,拉回本机一份,写
rollback.sh并实际演练一次还原 - 盘点结果写入
docs/output/服务器现状盘点.md
第 3 步的回滚演练通过之前,我不动任何线上文件。
八、安全约定
- 私钥、密码、
MCP_API_KEY、飞书 App Secret 一律不写入任何文件(包括台账、日志、代码注释) - 服务器上的
/etc/agent/agent.env只读不抄 - 所有线上改动先备份、留回滚路径,并记入
docs/变更日志.md