Files
lisglosips/docs/SSH_ACCESS_RUNBOOK.md
T

82 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 加密。
```powershell
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`
```text
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 会话中执行,并保持第二个会话不关闭:
```bash
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 凭据使用
```powershell
$servers = Import-Clixml .codex-private\SERVER_CREDENTIALS.clixml
$item = $servers | Where-Object Code -eq 'A'
$sudoPassword = $item.Credential.GetNetworkCredential().Password
```
禁止输出 `$sudoPassword`。需要自动化 sudo 时,将其通过进程内存或 SSH 标准输入传递,完成后立即清理环境变量。