Files
lisglosips/docs/SSH_ACCESS_RUNBOOK.md
T

3.3 KiB
Raw Blame History

LisgloSIPS SSH 访问与恢复 Runbook

S00 完成日期:2026-06-20。本文不包含密码。

1. 当前访问方式

  • 用户:hector
  • SSH 管理端口:<SSH_ADMIN_PORT>,端口号由用户确认后实施;开发环境未迁移前可能仍为 22
  • 项目 Key.codex-private/ssh/lisglosips_codex_ed25519
  • Key 指纹:SHA256:avGNUh+0t4tM9Odcaz+NHERAfESQl+ybzPi5oM39oYI
  • SSH 配置:.codex-private/ssh/config
  • known_hosts.codex-private/ssh/known_hosts
  • sudo 密码:.codex-private/SERVER_CREDENTIALS.clixml,由 Windows DPAPI 加密。
ssh -F .codex-private\ssh\config lisglosips-a
ssh -F .codex-private\ssh\config lisglosips-b
ssh -F .codex-private\ssh\config lisglosips-t

2. 主机指纹

主机 地址 ED25519 指纹
A / TonyHouse 100.90.90.90 SHA256:BmJVzUlHD2LPj/SlCnC611DnsHgedC79/eJ7pAMmbtM
B / YanZi 100.90.90.91 SHA256:Kh1EmcUfG4S+TPDtZ8p+D3A4pGlFc4B8lDMcPeLbxoI
T / SteveTable 100.93.185.30 SHA256:hlq2q/HIvyZzo2PxcDzzN5vMrfzQAzBW5W9qaeAEkGU

三台机器原本因镜像克隆共享同一套 SSH host key,S00 已分别轮换。任何后续指纹变化都必须停止连接并通过云控制台或已认证会话核验。

3. SSH 加固状态

当前原则:只调整 SSH 管理端口和允许来源,不禁止 SSH 密钥登录。PubkeyAuthentication 必须保持开启;密码登录策略按开发/生产环境另行确认,不再作为 S00 强制禁用项写入需求。

/etc/ssh/sshd_config.d/00-lisglosips-hardening.conf

Port <SSH_ADMIN_PORT>
PubkeyAuthentication yes
MaxAuthTries 4
LoginGraceTime 30

三台服务器均已通过:

  • sshd -t
  • Key 新会话登录,且不因端口变更被禁用
  • SSH 管理端口仅允许受控管理来源访问
  • hector 新密码 sudo 验证

4. 远端备份

主机 host key 轮换前 SSH 加固前
A /var/backups/lisglosips-s00/etc-ssh-before-hostkey-rotation-20260620150150.tar.gz /var/backups/lisglosips-s00/etc-ssh-before-hardening-20260620150326.tar.gz
B /var/backups/lisglosips-s00/etc-ssh-before-hostkey-rotation-20260620150152.tar.gz /var/backups/lisglosips-s00/etc-ssh-before-hardening-20260620150328.tar.gz
T /var/backups/lisglosips-s00/etc-ssh-before-hostkey-rotation-20260620150153.tar.gz /var/backups/lisglosips-s00/etc-ssh-before-hardening-20260620150329.tar.gz

5. 配置回滚

必须在一个已验证的 Key 会话中执行,并保持第二个会话不关闭:

sudo mkdir -p /var/backups/lisglosips-s00/current-ssh
sudo cp -a /etc/ssh/. /var/backups/lisglosips-s00/current-ssh/
sudo tar -xzf /var/backups/lisglosips-s00/etc-ssh-before-hardening-YYYYMMDDHHMMSS.tar.gz -C /
sudo sshd -t
sudo systemctl restart ssh

若 Key 登录完全失效,必须通过阿里云控制台/VNC 登录恢复,不要删除本地项目 Key 或 known_hosts。

6. DPAPI 凭据使用

$servers = Import-Clixml .codex-private\SERVER_CREDENTIALS.clixml
$item = $servers | Where-Object Code -eq 'A'
$sudoPassword = $item.Credential.GetNetworkCredential().Password

禁止输出 $sudoPassword。需要自动化 sudo 时,将其通过进程内存或 SSH 标准输入传递,完成后立即清理环境变量。