Remote Connect for RustDesk (Visual Studio Code Extension)

Unofficial community extension, not affiliated with RustDesk. Securely initiate authorized remote desktop connections directly from Visual Studio Code.
[!IMPORTANT]
Independent Community Project: This is an independent extension developed by the community. It is not an official product of Purslane Tech Pte. Ltd. or the official RustDesk project. RustDesk is an open-source remote desktop engine licensed under the AGPL-3.0.
🔒 Security Architecture Highlights
- Zero Credential Forwarding to Command Lines: This extension NEVER passes the target password in process arguments, environment variables, URLs, or temporary files. RustDesk is launched with the target ID only, and RustDesk's native window securely handles target authentication.
- Zero Shell Interpolation: All process spawning strictly uses typed argument arrays with
shell: false. Fuzz testing verifies that shell metacharacters (;, &, |, `, $, \n, quotes) are rejected.
- Official Supply-Chain Enforcement: All client provisioning downloads strictly from official
github.com/rustdesk/rustdesk releases over HTTPS. Redirects to third-party or untrusted hosts are immediately blocked. Every binary is verified against cryptographic SHA-256 digests and binary magic bytes (MZ for PE, \x7fELF for Linux) before execution.
- Transient In-Memory Credential Handling: Passwords exist in memory only during active sessions, with an automatic 5-minute timeout and immediate purge on disconnect or deactivation. Optional persistence uses VS Code
SecretStorage with a "Forget Saved Credentials" command. On Linux, if D-Bus/Secret Service keyring is unavailable, the user is warned and plaintext fallback is blocked.
- Strict Webview Sandboxing: The Activity Bar webview enforces a cryptographic nonce-based Content Security Policy (
default-src 'none') and strictly validates every incoming IPC message against a runtime schema.
- Zero Telemetry: The extension makes zero analytics, tracking, or telemetry calls.
🛡️ Target-Side Security Guidance
To ensure robust security on the target computer being accessed:
- Use Strong Random Passwords: Configure a long, random permanent password (16+ characters with mixed case, numbers, and symbols) in RustDesk's security settings. Never use short or predictable numeric PINs.
- Enable 2FA / Approval: Turn on RustDesk Two-Factor Authentication (2FA) or "Approve each incoming connection" whenever available on your version.
- Disable Unnecessary Capabilities: Turn off remote clipboard sharing, file transfer, and remote audio streaming in target RustDesk settings unless explicitly needed for your workflow.
- Do Not Save Credentials on Shared Devices: Never enable credential persistence when connecting from shared, public, laboratory, or college computers.
- Consider Self-Hosting
hbbs/hbbr: For enterprise or privacy-critical environments, self-host RustDesk rendezvous and relay servers to keep all session metadata and rendezvous traffic within your own private infrastructure.
- Sleep & Power Requirements: The target computer cannot be reached while asleep or powered off. Ensure the target computer's power settings prevent sleep during hours remote access is required.
Overview & Key Features
- 1-Click User-Local Provisioning: Automatically detects whether a compatible RustDesk client is available on Windows (portable
.exe) or Linux (.AppImage). If missing, provisions it into user-local storage (globalStorageUri) without requiring administrator or sudo privileges.
- Native High-Performance Streaming: Directly utilizes the native client engine for hardware-accelerated video streaming (AV1, H.264, H.265, VP8, VP9), low-latency mouse/keyboard input, and multi-display management.
- Cross-Network Support: Access target machines across different networks (e.g., target on home Wi-Fi, client on Ethernet) through public or self-hosted relays.
- Integrated Address Book: Save frequently accessed target IDs with optional custom server configurations.
- Connection Diagnostics: Probes client engine, background daemon status, platform architecture, and network TCP reachability on port 21116.
Operating System Compatibility
| Operating System |
Architecture |
Automated Provisioning |
Native Engine Integration |
Verified Status |
| Windows 11 |
x64 (x86_64) |
Yes (Portable .exe) |
Yes |
Tested & Verified |
| Windows 10 |
x64 (x86_64) |
Yes (Portable .exe) |
Yes |
Supported |
| Ubuntu Linux 20.04+ |
x64 (x86_64) |
Yes (.AppImage) |
Yes |
Supported |
| Debian / Fedora / Arch |
x64 (x86_64) |
Yes (.AppImage) |
Yes |
Supported |
| macOS 12+ |
x64 / ARM64 |
Manual / DMG |
Yes |
Supported |
How to Connect
- Open the Remote Connect icon in the VS Code Activity Bar.
- If RustDesk is not installed on your client computer, click "Download & Provision Client" to install the verified portable client automatically.
- Enter the remote target computer's Device ID (e.g.
xxxxxxx).
- (Optional) Expand "Advanced Server Configuration" if using a custom relay/ID server (e.g.
relay.example.com:21116) and server public key.
- Click "Connect".
- RustDesk opens its native session window, where you enter the target password securely.
- Click "Disconnect" when finished.
Extension Commands
| Command |
Title |
Description |
rustdesk-remote-access.connect |
Connect to Remote Device |
Prompts for target ID and initiates connection |
rustdesk-remote-access.disconnect |
Disconnect Active Session |
Terminates the active remote session |
rustdesk-remote-access.manageDevices |
Manage Saved Devices |
View and manage saved target device IDs |
rustdesk-remote-access.diagnostics |
Run Connection Diagnostics |
Runs environment, service, and network checks |
rustdesk-remote-access.provisionClient |
Download & Provision Client |
Downloads and verifies the native client binary |
rustdesk-remote-access.forgetCredentials |
Forget Saved Credentials |
Purges all stored credentials from SecretStorage |
rustdesk-remote-access.openSettings |
Open Settings |
Opens extension configuration settings |
Marketplace & Open VSX Publishing
This extension is packaged for release on both the Visual Studio Code Marketplace and Open VSX (for Antigravity, VSCodium, and Gitpod).
# Package the extension
npm run package
# Publish to Microsoft VS Code Marketplace
npx @vscode/vsce publish -p <MS_MARKETPLACE_PAT>
# Publish to Open VSX Registry
npx ovsx publish -p <OPEN_VSX_PAT>
License & Trademark Notice
- Extension Code: Released under the MIT License.
- RustDesk Engine: Open-source project licensed under AGPL-3.0.
- Trademark: RustDesk is a trademark of Purslane Tech Pte. Ltd. This project is an independent community extension and has no official affiliation with Purslane Tech Pte. Ltd.
| |