- Added new entries in CHANGELOG.md for version 1.1.12, detailing enhancements to jump host configuration and cycle prevention. - Updated README.md and its Chinese counterpart to include new AI Assistant features, such as command generation, error analysis, and multi-step workflows. - Enhanced documentation for terminal features, file transfer capabilities, and user settings to reflect recent changes and improvements. - Introduced a new guide for the AI Assistant, detailing its working modes, command cards, and risk control mechanisms.
201 lines
7.0 KiB
Markdown
201 lines
7.0 KiB
Markdown
---
|
||
sidebar_position: 7
|
||
---
|
||
|
||
# 安全功能
|
||
|
||
NyaTerm 的安全能力主要围绕三件事展开:
|
||
|
||
1. 安全保存本地凭据与认证材料
|
||
2. 管理 SSH 连接过程中的主机校验与二次认证
|
||
3. 在桌面端工作区中提供锁屏、主密码与敏感操作保护
|
||
|
||
## 本地敏感数据的保存方式
|
||
|
||
NyaTerm 会在本地保存连接相关配置,并对敏感内容做加密处理后再写入本地存储。常见的敏感数据包括:
|
||
|
||
- 已保存密码
|
||
- SSH 私钥与私钥口令
|
||
- OTP 密钥
|
||
- 主密码相关保护材料
|
||
- 代理或其他需要保护的认证材料
|
||
- AI provider 凭据
|
||
|
||
因此,平时使用时你看到的是“可以复用的密码 / 私钥 / OTP 条目”,而不是明文直接散落在普通文本配置里。
|
||
|
||
## Security/Auth 面板
|
||
|
||
左侧活动栏中的 **Security/Auth** 面板集中管理认证相关内容,分为三类:
|
||
|
||
- **密钥**
|
||
- **密码**
|
||
- **OTP**
|
||
|
||
这意味着你不需要在每个连接里重复录入所有敏感信息,而是先把凭据存成可复用条目,再在连接表单中引用。
|
||
|
||
### SSH 密钥管理
|
||
|
||
适合保存:
|
||
|
||
- 常用登录私钥
|
||
- 需要密码短语的私钥
|
||
- 按环境区分的多个身份
|
||
|
||
创建 SSH 连接时,认证方式切换到 **私钥** 后,就可以直接选择已保存的密钥。
|
||
|
||
### 密码管理
|
||
|
||
适合保存:
|
||
|
||
- SSH 密码
|
||
- 代理密码
|
||
- 需要重复复用的口令条目
|
||
|
||
在 SSH 连接表单中,密码认证也会直接引用这里的已保存密码。
|
||
|
||
密码管理支持查看已保存密码的明文(需要先解锁敏感数据),方便确认凭据内容。
|
||
|
||
### 凭据管理与终端自动填充
|
||
|
||
凭据管理是一项独立于 SSH 密码的能力,用于在终端交互过程中自动识别并填充密码提示。
|
||
|
||
#### 工作原理
|
||
|
||
1. 你在凭据管理中创建条目,为每个条目配置:
|
||
- **名称**:用于标识
|
||
- **提示正则**:匹配终端中出现的密码提示文本(如 `[Pp]assword:` 或 `Enter passphrase`)
|
||
- **发送值**:匹配成功后自动发送的内容
|
||
- **启用 / 禁用**:控制该条目是否参与自动匹配
|
||
|
||
2. 当终端输出匹配到某个凭据的提示正则时,会弹出自动填充提示
|
||
3. 你可以选择填充或忽略
|
||
|
||
#### 适用场景
|
||
|
||
- `sudo` 密码提示
|
||
- 二次确认密码
|
||
- 脚本中的交互式密码输入
|
||
- 任何需要在终端中重复输入密码的场景
|
||
|
||
#### 安全说明
|
||
|
||
- 凭据内容以加密形式保存在本地存储中
|
||
- 查看已保存密码需要先解锁敏感数据(输入主密码)
|
||
- 自动填充只在匹配到正则时触发,不会无条件发送
|
||
|
||
### OTP 管理
|
||
|
||
OTP 管理支持:
|
||
|
||
- **TOTP**
|
||
- **HOTP**
|
||
- 从二维码图片导入
|
||
- 查看并生成当前验证码
|
||
- 绑定到具体 SSH 连接
|
||
|
||
详细使用方式见 [OTP 与认证](./otp-and-auth)。
|
||
|
||
## 主密码
|
||
|
||
主密码是 NyaTerm 桌面端最重要的一项本地保护能力。
|
||
|
||
你可以在 **设置 → 安全** 中设置主密码。设置后:
|
||
|
||
- 应用会用它来校验解锁
|
||
- 本地敏感配置的保护会围绕它展开
|
||
- 锁屏界面会要求输入这个密码才能解锁
|
||
- **云同步** 相关操作才允许被启用
|
||
- NyaTerm 的加密 `.nya` 配置导入 / 导出也会以它作为前提条件
|
||
|
||
如果你没有设置主密码,后续锁屏就只是一层界面遮罩,而不是严格意义上的密码保护。
|
||
|
||
## 云同步与导入导出的安全模型
|
||
|
||
如果你准备启用 **设置 → 云同步**,主密码不只是“建议项”,而是前置条件。
|
||
|
||
当前实现里:
|
||
|
||
- 没有主密码时,不能启用云同步相关操作
|
||
- 云端 provider 凭据会作为受保护的本地敏感数据处理
|
||
- 上传到云端的是**加密后的可移植快照**,而不是明文配置文件
|
||
- `.nya` 导入 / 导出同样依赖主密码
|
||
- 导入 `.nya` 后通常需要重启应用
|
||
- 从云端拉取会覆盖快照中包含的可移植本地数据,但不会把所有设备本地 UI 状态都无差别漫游到另一台设备上
|
||
|
||
这意味着它更适合被理解为:
|
||
|
||
- **跨设备同步常用配置**
|
||
- **配合本地 `.nya` 导出完成备份和迁移**
|
||
|
||
而不是多人协作或字段级合并工具。
|
||
|
||
更详细的配置与行为说明见 [云同步](./sync-and-backup)。
|
||
|
||
## 屏幕锁定与应用锁定
|
||
|
||
### 手动锁定
|
||
|
||
你可以随时从界面中的锁定入口或快捷键触发锁屏。
|
||
|
||
### 自动锁定
|
||
|
||
在 **设置 → 安全** 中开启屏幕锁定后,还可以配置空闲分钟数:
|
||
|
||
- `0` 表示不使用空闲自动锁定
|
||
- 大于 `0` 时,空闲达到设定时间后自动进入锁屏界面
|
||
|
||
### 解锁行为
|
||
|
||
- **已设置主密码**:必须输入正确主密码才能解锁
|
||
- **未设置主密码**:可以直接点击解锁
|
||
|
||
应用锁定状态会在主工作区、模态子窗口和空闲检测之间保持一致。进入锁定后,终端内容和敏感面板会被遮挡;解锁前不要把它当作远端系统的权限控制,它保护的是本机 NyaTerm 工作区视图和本地敏感操作入口。
|
||
|
||
如果你准备把 NyaTerm 用在共享办公环境或演示现场,建议把“主密码 + 屏幕锁定 + 空闲自动锁定”一起开启。
|
||
|
||
## SSH 主机密钥策略
|
||
|
||
SSH 首次连接未知主机时,NyaTerm 支持三种策略:
|
||
|
||
| 策略 | 行为 |
|
||
|------|------|
|
||
| 提示 | 首次连接时询问是否信任(默认) |
|
||
| 接受 | 自动接受新的主机密钥 |
|
||
| 严格 | 拒绝所有未知主机 |
|
||
|
||
已知主机记录最终保存在本地 `redb` 存储中的 `known_hosts` 文本文档;旧版 `known_hosts` 文件会在首次启动时迁入。
|
||
|
||
如果你处在对主机身份校验要求更高的环境,建议使用“提示”或“严格”,而不是无条件接受。
|
||
|
||
## 本地持久化模型
|
||
|
||
NyaTerm 当前把主要用户数据保存在 `~/.nyaterm/nyaterm.redb` 中,而不是继续以多个 JSON 文件作为主存储。
|
||
|
||
其中大致包括:
|
||
|
||
- 设置、连接、密钥、密码、OTP、代理、隧道、快捷命令、历史等 JSON 文档
|
||
- `known_hosts`、`master.key` 等文本文档
|
||
|
||
从 Dragonfly 升级时,NyaTerm 会在首次启动时复制 `~/.dragonfly/dragonfly.redb`;如果旧环境只有 `.dragonfly` JSON / 文本文件,也会复制后迁入 redb。旧 `~/.dragonfly/` 目录会保留作为回滚备份。
|
||
|
||
## 诊断与排障材料
|
||
|
||
除了连接与凭据管理,NyaTerm 还提供两类常见的数据操作:
|
||
|
||
- **导出配置**:把全部配置压缩并加密为 `.nya`
|
||
- **导出诊断包**:用于打包近期日志、运行时摘要等排障信息
|
||
|
||
需要注意:
|
||
|
||
- `.nya` 导入 / 导出依赖主密码
|
||
- 导出诊断包主要服务于排查 Bug、收集问题上下文和请求支持
|
||
- 诊断日志相关设置、打开日志目录、导出诊断包入口位于 **设置 → 常规**
|
||
|
||
## 安全使用建议
|
||
|
||
- 生产环境优先使用 **私钥 + OTP**,不要长期依赖单一密码
|
||
- 对共享电脑或演示机,开启 **主密码** 与 **屏幕锁定**
|
||
- 对需要经常穿过堡垒机的环境,把 **跳板机** 和 **代理** 做成明确的已保存配置
|
||
- 对首次连接的新主机,核对主机密钥来源后再信任
|
||
- 对 AI provider 凭据、同步 provider 凭据和 `.nya` 备份文件,按和 SSH 凭据相同的敏感级别管理
|