补回服务器指纹配置教程

在服务器配置页面增加可见的主机指纹获取教程和安全提示,并同步完善 SSH 配置说明。
This commit is contained in:
xuans 2026-10-15 23:33:03 +08:00
parent 01d9b43178
commit b9ee3898e9
3 changed files with 115 additions and 1 deletions

View File

@ -14,6 +14,36 @@
保存服务器配置后,Scert 只使用受保护的密码凭据建立 SSH 连接,并校验服务器主机指纹。密码不会在页面回显、日志中输出或作为命令参数写入。
## 主机指纹获取教程
服务器配置页面的“服务器 SHA256 指纹”用于校验 SSH 主机身份。它不是 HTTPS 证书指纹、SSH 登录密码或 SSH 公钥文件内容,只填写命令输出中以 `SHA256:` 开头的完整值。
### 通过服务器控制台获取
优先在云厂商控制台、物理控制台或已经通过可信渠道核验的 SSH 会话中执行:
```bash
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256
```
如果服务器没有 ED25519 主机密钥,再执行:
```bash
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub -E sha256
```
复制输出中以 `SHA256:` 开头的完整值,例如 `SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcd`。不要复制算法名称、服务器地址或括号中的说明。
### 通过已核验的管理机查看
管理机可以使用以下命令查看当前 SSH 服务提供的 ED25519 指纹:
```bash
ssh-keyscan -t ed25519 -p 22 服务器地址 2>/dev/null | ssh-keygen -lf - -E sha256
```
`ssh-keyscan` 的结果只能作为查找工具,不能单独作为信任依据。首次配置或指纹发生变化时,必须再通过云厂商控制台、服务器本地控制台或其他可信运维渠道核对;核对不一致时应停止配置,不要关闭主机指纹校验或直接重试连接。
## 明确禁止的操作
- 不要在 Scert 中录入 SSH 私钥或公钥。
@ -32,4 +62,4 @@
- 服务器密码只通过受保护的凭据存储保存,不提交到 Git、脚本、日志或工单。
- 生产服务器应关闭 SSH 公钥认证,使用密码唯一认证策略。
- Scert 管理服务和数据库不直接暴露公网,远程管理入口应通过 Nginx 的 `80/443` 反代访问。
- Scert 管理服务和数据库不直接暴露公网,远程管理入口应通过 Nginx 的 `80/443` 反代访问。

View File

@ -116,6 +116,65 @@
min-height: 82px;
}
.server-modal .fingerprint-guide {
grid-column: 1 / -1;
margin: 2px 0 10px;
padding: 12px 14px;
border: 1px solid #d8e4f2;
border-radius: 12px;
color: #40526d;
background: #f7faff;
font-size: 12px;
line-height: 1.65;
}
.server-modal .fingerprint-guide summary {
color: #234f89;
font-size: 13px;
font-weight: 800;
cursor: pointer;
}
.server-modal .fingerprint-guide summary::marker {
color: #315faa;
}
.server-modal .fingerprint-guide-body {
padding-top: 8px;
}
.server-modal .fingerprint-guide-body p {
margin: 0 0 8px;
}
.server-modal .fingerprint-guide-body ol {
margin: 0 0 8px;
padding-left: 20px;
}
.server-modal .fingerprint-guide-body li {
margin: 4px 0;
}
.server-modal .fingerprint-guide code {
display: inline-block;
margin: 2px 3px;
padding: 1px 5px;
border-radius: 5px;
color: #1f477e;
background: #eaf1fb;
font-family: Consolas, "SFMono-Regular", monospace;
font-size: 11px;
overflow-wrap: anywhere;
}
.server-modal .fingerprint-guide-warning {
padding: 8px 10px;
border-left: 3px solid #d48b32;
color: #77551f;
background: #fff8eb;
}
@media (max-width: 900px) {
.server-modal form {
grid-template-columns: repeat(2, minmax(0, 1fr));

View File

@ -116,6 +116,31 @@ const {
type="text"
placeholder="SHA256:..."
/>
<details class="fingerprint-guide" open>
<summary>指纹配置教程</summary>
<div class="fingerprint-guide-body">
<p>
这里填写的是 <strong>SSH 主机密钥指纹</strong>,不是 HTTPS 证书指纹,也不是 SSH 登录密码。保存后,Scert 只会连接指纹匹配的服务器。
</p>
<ol>
<li>
优先在服务器控制台或已核验的 SSH 会话中执行:
<code>ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub -E sha256</code>
</li>
<li>
如果服务器没有 ED25519 主机密钥,再执行:
<code>ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub -E sha256</code>
</li>
<li>
复制输出中以 <code>SHA256:</code> 开头的完整值,例如
<code>SHA256:AbCdEfGhIjKlMnOpQrStUvWxYz0123456789abcd</code>,不要复制算法名称、主机地址或括号。
</li>
</ol>
<p class="fingerprint-guide-warning">
不要只相信网络扫描结果:请通过云厂商控制台、服务器本地控制台或其他可信渠道核对。指纹不一致时停止配置,不要关闭主机指纹校验或直接重试连接。
</p>
</div>
</details>
</label>
</div>
</section>