The design philosophy of DSH is “everything is a plugin.” In agent development or operations scenarios, it is common to execute commands or transfer files over SSH, Telnet, or WinRM. dsh-remote-shell is a DSH plugin that bundles the remote-shell skill and provides secure remote operation capabilities.

Definition & Positioning

This is a DSH plugin maintained by wutian122 (MIT License). It addresses the problem of performing remote system management directly in DSH environments, integrates support for SSH, SFTP, Telnet, and WinRM protocols, and includes a built-in encrypted credential store based on Fernet + PBKDF2-HMAC-SHA256.

Core Features

The skills provided by this plugin include the following capabilities:
1. Remote Command Execution: Supports SSH, WinRM, and Telnet protocols. Supports single commands, batch execution, script execution, remote system information queries, and health checks.
2. SFTP File Transfer: Provides upload, download, and directory listing functions.
3. Encrypted Credential Store: Login scripts do not accept plaintext passwords. Credentials are always read from the encrypted store. You can use the credctl tool to create, read, update, and delete credentials.
4. Security Interception: By default, commands that may change state are blocked. They are executed only when the --auto-confirm flag is explicitly used.

Installation & Activation

Install from the npm registry:

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

Install from a local codebase (for development or testing):

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

After installation, restart dsh web for the plugin to take effect. The skill appears in the skill catalog as remote-shell (provider dsh-remote-shell, source bundled).

How It Works

dsh-remote-shell is a Cordis plugin that injects a skills provider. On load, the plugin scans SKILL.md files in the skills/ directory, parses YAML frontmatter, and registers the skills into the main registry (rank 600, source bundled).
The provider is immutable and does not perform file watching or polling. If a skill is missing or malformed, it degrades gracefully (skips the skill without throwing an error).

Security & Notes

  • Code Execution Risk: Installing this plugin runs third-party code on your local machine.
  • Credential Management: The master password for the credential store is managed by the user. The plugin does not store or transmit this master password.
  • Line Ending Format: SKILL.md is locked to LF (\n) line endings. Because the provider’s frontmatter detection requires exact --- lines, CRLF line endings cause the provider to skip the skill.

Dependencies & Development

The skill scripts are written in Python 3. On first use, install the third-party libraries as described in SKILL.md, such as paramiko (for SSH/SFTP) and pywinrm (for WinRM).
Run unit tests (using the Node.js built-in test runner):

node --test

Use Cases & Resources

This plugin is suitable for scenarios that require automated remote operations, cross-platform command execution, or file transfer in DSH.
- Plugin catalog page
- GitHub repository