dsh-remote-shell:DSH 遠程 Shell 技能插件

DSH 的設計理念是“一切皆插件”。在智能體開發或運維場景中,經常需要通過 SSH、Telnet 或 WinRM 執行命令、傳輸文件。dsh-remote-shell 是一個 DSH 插件,它將 remote-shell 技能打包在一起,提供安全的遠程操作能力。

定義與定位

這是一個由 wutian122 維護的 DSH 插件(MIT 許可證)。它解決了在 DSH 環境中直接進行遠程系統管理的問題,集成了 SSH、SFTP、Telnet 和 WinRM 協議支持,並內置了基於 Fernet + PBKDF2-HMAC-SHA256 的加密憑據庫。

核心功能

該插件提供的技能包含以下能力:
1. 遠程命令執行:支持 SSH、WinRM、Telnet 協議。支持單條命令、批量執行、腳本執行、遠程系統信息查詢和健康檢查。
2. SFTP 文件傳輸:提供上傳、下載和目錄列表功能。
3. 加密憑據庫:登錄腳本不接受明文密碼。憑據始終從加密庫中讀取。可以使用 credctl 工具進行憑據的增刪改查。
4. 安全攔截:默認攔截可能發生變更的命令,只有顯式使用 --auto-confirm 標誌後纔會執行。

安裝與啓用

從 npm 註冊表安裝:

dsh plugin --profile web add dsh-remote-shell

從本地代碼庫安裝(用於開發或測試):

dsh plugin --profile web add /path/to/dsh-remote-shell

安裝後,需要重啓 dsh web 才能使插件生效。技能在技能目錄中顯示爲 remote-shell(提供者 dsh-remote-shell,來源 bundled)。

工作原理

dsh-remote-shell 是一個 Cordis 插件,它注入了一個 skills provider。插件加載時會掃描 skills/ 目錄中的 SKILL.md 文件,解析 YAML frontmatter,並將技能註冊到主註冊表(rank 600,來源 bundled)。
該 provider 是不可變的,不執行文件監視或輪詢。如果存在缺失或格式錯誤的技能,它會優雅降級(跳過該技能,不拋出錯誤)。

安全與注意事項

  • 代碼執行風險:安裝此插件會在本地機器上運行第三方代碼。
  • 憑據管理:憑據庫的主密碼由用戶自己管理,插件不會存儲或傳輸該主密碼。
  • 行尾格式:SKILL.md 被鎖定爲 LF(\n)行尾。因爲提供者對 frontmatter 的檢測需要精確的 --- 行,CRLF 檢出會導致提供者跳過該技能。

依賴與開發

技能腳本使用 Python 3 編寫。首次使用時,需要按照 SKILL.md 中的說明安裝第三方庫,例如 paramiko(用於 SSH/SFTP)和 pywinrm(用於 WinRM)。
運行單元測試(使用 Node.js 內置測試運行器):

node --test

適用場景與資源

該插件適合需要在 DSH 中實現自動化遠程運維、跨平臺命令執行或文件傳輸的場景。
- 插件目錄頁
- GitHub 倉庫

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜