---
title: "DSH Telegram 插件：安装、权限与凭据风险"
description: "审计 DSH Telegram 社区插件的安装方法、机器人认领、权限控制、凭据存储、媒体能力与已知限制。"
canonical: https://52dsh.com/plugins/dsh-telegram-plugin/
authors: ["52DSH 编辑部"]
published_at: 2026-08-21
updated_at: 2026-08-21
verified_on: 2026-08-21
maintenance_status: community
verification_level: source_reviewed
risk_level: high
---

# DSH Telegram 插件：安装、权限与凭据风险

审计 DSH Telegram 社区插件的安装方法、机器人认领、权限控制、凭据存储、媒体能力与已知限制。

## 这是什么插件

`@ashafizullah/dsh-telegram` 是一个把 DeepSeek Harness 会话接入 Telegram 的社区插件。它可以从 Telegram 创建或恢复 Session、切换模型与工作目录、发送图片和文本文件，并在聊天中处理 Agent 的提问与授权请求。它不是 DeepSeek 官方插件，也不等同于 52DSH 的安全认证。

本文在 2026 年 8 月 22 日审阅了插件 `0.5.1` 的仓库、npm 元数据、中文 README 和关键权限代码，并以 DSH `0.1.1-rc.2` 作为站点版本基线。编辑部尚未连接真实机器人完成端到端运行，因此当前状态是“源码已审阅、社区收录”。

| 项目 | 审计结果 |
| --- | --- |
| npm 包 | `@ashafizullah/dsh-telegram@0.5.1` |
| 仓库与 npm 发布者 | npm 元数据指向 `ashafizullah/dsh-telegram` |
| 许可证 | MIT |
| Node.js | `>=22` |
| 外部网络 | 默认连接 `https://api.telegram.org` |
| 凭据 | 需要 Telegram Bot Token |
| 本地能力 | Session 状态、工作目录、文件、可选 OCR 与截图 |
| 编辑验证 | 未安装、未连接真实 Telegram Bot |

## 安装前要理解的安全边界

这个插件不是简单的消息通知器。Telegram 用户发出的内容会进入 DSH Agent，而 Agent 能做什么取决于 Profile 的工具和权限预设。若 Profile 允许执行命令或写文件，获得机器人访问权的人可能间接操作运行 DSH 的电脑。

安装前至少应做到：

1. 创建专用 Telegram Bot，不与其他生产机器人共用 Token。
2. 使用独立 DSH Profile 和受限工作目录，不把家目录作为默认 `cwd`。
3. 为 Telegram 会话选择只读或最小权限 preset，再按任务逐步放开。
4. 保持 `screenshot.enabled: false`，确认确有需要后再开启。
5. 使用认领流程或明确的 `allowFrom` 用户 ID，不公开认领码。
6. 明确消息、附件和模型上下文会经过 Telegram、DSH 以及所选模型 Provider。

有关 Profile、Bundle 和安装脚本的通用检查方法，先阅读[DSH 插件安装指南](/plugins/dsh-plugin-profile-guide/)和[插件目录验证标签](/plugins/plugin-directory-guide/)。

## 如何安装

下面把 DSH 版本固定为本站核验基线，便于复现。插件仍是社区项目，建议先在测试 Profile 中安装：

```bash
npx --yes @deepseek-ai/dsh@0.1.1-rc.2 \
  plugin --profile web add -w @ashafizullah/dsh-telegram@0.5.1
```

安装完成后，把 Bot Token 写入 DSH credentials 域，不要写进 Profile 配置或提交到 Git：

```bash
npx --yes @deepseek-ai/dsh@0.1.1-rc.2 \
  credentials set TELEGRAM_BOT_TOKEN
```

然后检查配置层并启动 Web Profile：

```bash
npx --yes @deepseek-ai/dsh@0.1.1-rc.2 \
  --profile web --dump-config

npx --yes @deepseek-ai/dsh@0.1.1-rc.2 web
```

预期结果是控制台出现一次性 `/claim <码>` 提示。把该命令发给自己的机器人后，首个成功认领者会成为属主。认领前机器人默认不处理其他消息。

## 访问控制应该怎样配置

插件提供两种入口控制方式：

- 默认认领：每次启动产生新的认领码，第一次正确认领后持久记录属主；
- `allowFrom`：显式填写允许访问的 Telegram 数字用户 ID，跳过认领流程。

访问检查发生在消息进入 Agent 之前。即便如此，也不应只依赖机器人属主身份：还要限制 Agent 权限、工作目录和工具集合。`/permission` 可以查看或切换当前 Telegram 会话的权限 preset，`/cd` 能切换工作目录，因此两者都是高风险入口。

建议首次测试保留以下策略：

```text
allowFrom              只填自己的 Telegram 数字 ID
permissionPreset       选择只读或最小权限预设
cwd                    指向专用测试工作区
requireMentionInGroups true
screenshot.enabled     false
media.enabled          按实际需要决定
```

不要在公开群组中测试高权限 Profile。Telegram 用户名可以修改，允许名单应使用 `/whoami` 返回的数字 ID。

## 支持哪些操作

仓库 README 列出的常用命令包括：

| 命令 | 作用 | 主要风险 |
| --- | --- | --- |
| `/new`、`/sessions` | 创建或恢复会话 | 会话上下文可能包含敏感信息 |
| `/cd` | 查看或切换工作目录 | 可能扩大文件访问范围 |
| `/model`、`/effort` | 切换模型和思考强度 | 费用、数据出口可能改变 |
| `/permission` | 查看或切换权限 preset | 可能扩大命令与写入权限 |
| `/screenshot` | 返回运行机器的屏幕截图 | 可能暴露其他窗口和个人信息 |
| `/status`、`/diag` | 查看运行状态与故障 | 可能透露路径、版本和部署信息 |
| `/stop` | 取消当前 Agent 任务 | 中止中的任务可能留下中间状态 |

插件支持图片和文本文件，但 README 明确说明暂不支持语音、音频和视频。没有视觉模型时可以调用本机 `tesseract` 做 OCR；这会额外启动本地进程。截图功能默认关闭，在 macOS 上还需要授予运行 DSH 的进程“屏幕录制”权限。

## 凭据、文件与网络风险

源码把 `tokenRef` 与真实 Token 分开，默认凭据名是 `TELEGRAM_BOT_TOKEN`。Web 设置页只查询凭据是否存在，不应返回 Token 明文。这个设计降低了误显示风险，但不能替代主机权限控制：能够读取 DSH 凭据存储或进程环境的本地用户仍可能取得 Token。

插件还会在 `$DSH_HOME/dsh-telegram/` 保存属主、会话绑定、状态和故障信息。认领码文件被设计为仅属主可读，但仍应检查实际文件权限。图片、文本、Agent 回复和必要的回调数据会通过 Telegram Bot API；Agent 使用远程模型时，相关内容还可能发送给模型 Provider。

## 如何验证安装结果

不要以“插件安装成功”作为验收。至少检查：

1. `--dump-config` 中确实出现 Telegram Bundle，且没有意外配置层。
2. 未认领用户无法触发 `/status`、普通对话或 Agent 工具。
3. 正确用户认领后，`/status` 显示预期 Session、目录、模型和权限。
4. `cwd` 不能越过预定工作区；高风险命令会触发授权或被拒绝。
5. `screenshot.enabled` 关闭时 `/screenshot` 明确拒绝执行。
6. 日志、`status.json` 和 Web 设置页均不出现 Bot Token。
7. 重启 DSH 后所有权与允许名单行为符合预期。

本站尚未完成上述端到端测试，所以不建议直接接入生产机器。

## 卸载与回滚

在同一个 Profile 中卸载：

```bash
npx --yes @deepseek-ai/dsh@0.1.1-rc.2 \
  plugin --profile web remove @ashafizullah/dsh-telegram
```

随后再次运行 `--dump-config`，确认 Telegram Bundle 已消失，再重启 Profile。卸载 npm 包不等于删除 Telegram Bot、撤销 Bot Token 或清理 `$DSH_HOME/dsh-telegram/` 状态；这些动作应分别审核。若 Token 曾经暴露，应在 BotFather 中立即撤销并重新生成。

如果你还不熟悉 DSH 的沙箱和权限边界，先阅读[DSH 权限与沙箱指南](/tutorials/dsh-permissions-sandbox/)，不要从远程聊天入口测试 `danger-full-access`。

## 原始来源

- https://x.com/adamshafizullah/status/2090808427375477183
- https://github.com/ashafizullah/dsh-telegram/tree/183c53e1098ab49ee8985fa9631aa39b60a803d4
- https://www.npmjs.com/package/@ashafizullah/dsh-telegram/v/0.5.1
- https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.1-rc.2/apps/cli/README.zh.md
