Files
nyaterm/docs-site/docs/guide/security.md
T
Kang e9a72a85ff docs: Enhance AI Assistant and security features in documentation
This commit updates the documentation to include detailed descriptions of the new AI Assistant capabilities, including Ask and Agent modes, session management, and command risk assessment. It also introduces enhancements to the security section, detailing credential management and terminal password autofill features. These updates improve user understanding and accessibility of the new functionalities.
2026-05-11 10:13:49 +08:00

6.7 KiB
Raw Blame History

sidebar_position
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 与认证

主密码

主密码是 NyaTerm 桌面端最重要的一项本地保护能力。

你可以在 设置 → 安全 中设置主密码。设置后:

  • 应用会用它来校验解锁
  • 本地敏感配置的保护会围绕它展开
  • 锁屏界面会要求输入这个密码才能解锁
  • 同步与备份 相关操作才允许被启用
  • NyaTerm 的加密 .dgfy 配置导入 / 导出也会以它作为前提条件

如果你没有设置主密码,后续锁屏就只是一层界面遮罩,而不是严格意义上的密码保护。

同步、备份与导入导出的安全模型

如果你准备启用 设置 → 同步与备份,主密码不只是“建议项”,而是前置条件。

当前实现里:

  • 没有主密码时,不能启用同步与备份相关操作
  • 云端 provider 凭据会作为受保护的本地敏感数据处理
  • 上传到云端的是加密后的可移植快照,而不是明文配置文件
  • .dgfy 导入 / 导出同样依赖主密码
  • 导入 .dgfy 后通常需要重启应用
  • 远程恢复会覆盖快照中包含的可移植本地数据,但不会把所有设备本地 UI 状态都无差别漫游到另一台设备上

这意味着它更适合被理解为:

  • 跨设备同步常用配置
  • 给当前设备做可恢复的加密备份

而不是多人协作或字段级合并工具。

更详细的配置与行为说明见 同步与备份

屏幕锁定

手动锁定

你可以随时从界面中的锁定入口或快捷键触发锁屏。

自动锁定

设置 → 安全 中开启屏幕锁定后,还可以配置空闲分钟数:

  • 0 表示不使用空闲自动锁定
  • 大于 0 时,空闲达到设定时间后自动进入锁屏界面

解锁行为

  • 已设置主密码:必须输入正确主密码才能解锁
  • 未设置主密码:可以直接点击解锁

如果你准备把 NyaTerm 用在共享办公环境或演示现场,建议把“主密码 + 屏幕锁定”一起开启。

SSH 主机密钥策略

SSH 首次连接未知主机时,NyaTerm 支持三种策略:

策略 行为
提示 首次连接时询问是否信任(默认)
接受 自动接受新的主机密钥
严格 拒绝所有未知主机

已知主机记录最终保存在本地 redb 存储中的 known_hosts 文本文档;旧版 known_hosts 文件会在首次启动时迁入。

如果你处在对主机身份校验要求更高的环境,建议使用“提示”或“严格”,而不是无条件接受。

本地持久化模型

NyaTerm 当前把主要用户数据保存在 ~/.nyaterm/nyaterm.redb 中,而不是继续以多个 JSON 文件作为主存储。

其中大致包括:

  • 设置、连接、密钥、密码、OTP、代理、隧道、快捷命令、历史等 JSON 文档
  • known_hostsmaster.key 等文本文档

从 Dragonfly 升级时,NyaTerm 会在首次启动时复制 ~/.dragonfly/dragonfly.redb;如果旧环境只有 .dragonfly JSON / 文本文件,也会复制后迁入 redb。旧 ~/.dragonfly/ 目录会保留作为回滚备份。

诊断与排障材料

除了连接与凭据管理,NyaTerm 还提供两类常见的数据操作:

  • 导出配置:把全部配置压缩并加密为 .dgfy
  • 导出诊断包:用于打包近期日志、运行时摘要等排障信息

需要注意:

  • .dgfy 导入 / 导出依赖主密码
  • 导出诊断包主要服务于排查 Bug、收集问题上下文和请求支持
  • 诊断日志相关设置、打开日志目录、导出诊断包入口位于 设置 → 常规

安全使用建议

  • 生产环境优先使用 私钥 + OTP,不要长期依赖单一密码
  • 对共享电脑或演示机,开启 主密码屏幕锁定
  • 对需要经常穿过堡垒机的环境,把 跳板机代理 做成明确的已保存配置
  • 对首次连接的新主机,核对主机密钥来源后再信任
  • 对 AI provider 凭据、同步 provider 凭据和 .dgfy 备份文件,按和 SSH 凭据相同的敏感级别管理