前言¶
在 DSH 裏讓智能體操作遠端機器,最常見的做法是另開一條 ssh 通道:命令由 agent 自己拼,shell 由 agent 自己管。這種做法有三個直接的問題:你看不到它實際敲了什麼命令,密碼 / sudo / 指紋這類必須由人完成的交互沒有落點,事後也沒有一份可以回看的記錄。
feely0208/dsh-ssh-console 給出的是一條受控、可審計的執行通道。它不做共享 PTY,而是把邊界寫死:主機白名單、只走密鑰、危險命令二次確認、全量留痕。下面介紹它的能力、安裝方式和使用邊界。
這是什麼¶
@deepwhale-cn/dsh-ssh-console 是 DSH(DeepSeek Harness)的一個插件,包描述爲「深鯨 SSH 控制台」:在側欄面板裏列出 ~/.ssh/config 中的主機、執行遠程命令、全量審計留痕。它由 feely0208 維護,倉庫地址爲 github:feely0208/dsh-ssh-console,package.json 中作者一欄爲溫州深鯨智能科技有限公司。
解決的問題是:agent 需要能碰遠端機器,但執行過程要處於人的可視、可確認、可回看範圍內。關鍵詞(README 原文)爲 SSH、遠程運維、審計、危險命令確認、DeepSeek Harness 插件。
核心功能¶
- 主機白名單:默認只允許
~/.ssh/config裏的別名;確需把策略放寬到任意user@host時,顯式設置DSH_SSH_ALLOW_ANY=1。 - 只走密鑰:調用本機
ssh時使用BatchMode=yes。需要密碼的場景會明確報錯,而不是誘導你把密碼寫進配置或插件。 - 危險命令二次確認:命中
rm -rf、mkfs、dd、shutdown、chmod 777、強推、npm publish等模式時,返回「需要確認」,只有帶confirm=true纔會執行。 - 全量審計:每次執行、被拒絕的執行、待確認的請求都寫入
~/.dsh/ssh-console-audit.jsonl。
面板分四個區域:
| 區域 | 內容 |
|---|---|
| 主機 | 從 ~/.ssh/config 讀取(別名 + 用戶@主機) |
| 命令 | 多行輸入;執行後顯示退出碼、耗時、stdout/stderr |
| 待確認 | 危險命令命中時出現,必須點「我知道風險,執行」 |
| 審計 | 最近 20 條執行記錄(時間 / 主機 / 結果 / 命令摘要) |
安裝與啓用¶
安裝命令來自 README 原文:
dsh plugin --profile web add @deepwhale-cn/dsh-ssh-console
安裝前需要的環境要求(package.json):
"engines": {
"dsh": ">=0.1.0-rc.6 <0.3.0",
"node": ">=18"
}
許可證爲 MIT,當前版本 0.1.0。該插件面向 web 平臺,dsh.client.inject 注入 @deepseek-ai/dsh-client-runtime,platform 爲 web,immediately 爲 true;dsh.bundle.patch 指向 ./cordis.patch.yml。入口爲 ./lib/index.js,另有 ./lib/client.js。
安裝前應先讀一遍源碼與 LICENSE。該插件以當前 dsh 進程的權限運行,它執行遠程命令依賴的是本機 ssh 可執行文件,因此也要看運行 dsh 的賬號本身能訪問哪些主機和憑據。
典型用法¶
安裝完成後,側欄會多出「SSH 控制台」。先做兩件準備:確認目標主機的別名已經寫在 ~/.ssh/config 裏,確認本機 ssh 已配置好密鑰或 ssh-agent(插件不保存密碼,也不做憑據代理)。
執行順序如下:
- 在「主機」區域選定別名。列表來自
~/.ssh/config。 - 在「命令」區域輸入要執行的命令,支持多行。
- 點「執行」,面板顯示退出碼、耗時、stdout 與 stderr。
- 若命中危險命令模式,面板不會直接執行,而是在「待確認」區域出現條目,需要點「我知道風險,執行」;或者以帶
confirm=true的方式確認後才執行。 - 每次執行、拒絕、待確認都會追加一條記錄到
~/.dsh/ssh-console-audit.jsonl,可在「審計」區域查看最近 20 條。
以下命令均爲危險命令示例,會觸發二次確認:
rm -rf /var/lib/app
mkfs.ext4 /dev/sdb1
dd if=/dev/zero of=/dev/sda
shutdown -h now
chmod 777 /etc/app
git push --force origin main
npm publish
適用場景與注意¶
適合這幾類場合:需要從 DSH 側欄發起遠程命令、想讓每次遠端操作都有時間 / 主機 / 結果 / 命令摘要可回看、不想讓密碼進入插件或配置文件。
需要注意的邊界(README「邊界(重要)」一節):
- 不保存密碼、不做代理:只調用本機
ssh,憑據由你的 ssh 體系(key / agent)管理。 - 不是完整終端:一次一條命令執行,不保留 shell 狀態,
cd/export不跨命令。需要交互式登錄請用系統終端。 - 超時:默認 30 秒,最長 120 秒;長任務請用
nohup/tmux自己託管。 - 審計文件是明文 JSONL,留在本機;不要把它放在共享目錄裏。
該插件是一個工具,使用者需遵守所在地區法律法規,對使用本項目造成的後果自行承擔責任。
結尾¶
這個插件的價值不在於提供更順手的遠程 shell,而是把遠程執行的邊界固定下來:誰來執行、能不能執行、執行了什麼、被拒絕過什麼,都有記錄。目錄頁與倉庫如下:
- SkillHub 目錄頁:https://www.skillhub.cn/plugins/feely0208/dsh-ssh-console
- GitHub:https://github.com/feely0208/dsh-ssh-console
需要說明的是,SkillHub 是獨立的社區目錄站點,與 DeepSeek / 幻方沒有官方從屬關係,該插件並非官方應用商店中上架的產品。