Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>All in One SSH StudioNew to Visual Studio Code? Get it now.
All in One SSH Studio

All in One SSH Studio

smilence

|
1 install
| (0) | Free
一个自带连接管理、SFTP 浏览、远程编辑、系统监控并对接 Copilot 的 VS Code SSH 客户端
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

All in One SSH Studio

English | 简体中文

An all-in-one SSH client inside VS Code: connection management, SFTP browsing, remote editing, system/network/process monitoring, port forwarding, plus native integration with GitHub Copilot Chat.

No binaries are pushed to the remote host, no telemetry is reported, and nothing is written to ~/.ssh. All destructive operations always require a second confirmation.


Get Started in 30 Seconds

  1. Click the All in One SSH Studio icon in the Activity Bar on the left → open the Connections panel → click + in the title bar to create a new connection.
  2. Fill in host / port / username / authentication (password · private key · SSH Agent), then click Test Connection to validate it (this does not write any configuration).
  3. After validation succeeds, save and connect. Once connected, the Dashboard and Toolbox on the right become available automatically.

For jump-host scenarios: first configure the already-whitelisted host as a normal connection, then select it from the target connection's Advanced → Jump Host (ProxyJump) dropdown. Multi-hop nesting is supported (A→B→C).


Views and Entry Points

After opening All in One SSH Studio in the Activity Bar, you will see 5 panels:

Panel Purpose
Connections Supports multi-level grouping, create / edit / connect / disconnect; connection configuration data can be imported and exported; the Disconnect item in the context menu requires confirmation
Active Sessions Current active sessions, with support for disconnecting (with confirmation) / creating a new SSH terminal / opening the SFTP browser
Dashboard Displays CPU / Memory / Network / Disk / System Info in sections inside a single panel; CPU and memory each have independent sections with 5-minute mini sparkline trends; progress bars change color by threshold (warn ≥75% / crit ≥90%)
Toolbox Card-style unified entry point that organizes all feature panels below into two major groups (related to active sessions)
Plugin Management Global tools entry point, decoupled from the session lifecycle: plugin usage guide / to-do management / operation audit log

Toolbox · Resource Management

Card Description
SFTP Browser Browse / upload / download / rename / delete; supports multi-select from the VS Code Explorer and drag into the current remote directory; multi-select (Ctrl/Cmd toggle, Shift range) + right-click bulk delete / bulk download; delete confirmation + parent directory write-permission check; one-time decision for same-name conflicts in bulk operations (overwrite all / skip all / keep both for all / ask one by one); right-click menu (Enter Directory / Open in Terminal / Copy Path); rss.sftp.writeConfirm can enable a confirmation before saving online files
Command Snippets Global and connection-bound command templates; card-grid view + modal details / editing; shows global snippets and snippets for the current connection; actions: view details / edit / copy / fill into terminal / fill and execute / reset usage count / delete; dangerous commands are blocked by the whitelist
Port Forwarding Supports both local→remote and remote→local modes; table shows status / current concurrency / cumulative upstream and downstream bytes; port conflicts are detected automatically; can inspect the remote process corresponding to the source port
Log Viewer Bookmark remote log paths (supports template variables such as dates); Realtime Mode (tail -F, ring buffer, can pause / resume / clear) and Paged Mode (page by byte offset, no full-file scan required for large files); keyword search (grep -bnF) + n/N navigation; frontend syntax highlighting (timestamp / log level / JSON key / IP / URL); multi-tab support
Transfer Queue View file upload/download progress, pause, and retry; when the panel is already open, new upload tasks refresh in the background without stealing focus from the SFTP tab; when the connection disconnects, queued tasks for that connection are canceled immediately, and running tasks stop automatically at the next checkpoint
To-Do Tasks Global operations checklist for ops work; each item includes title / notes / priority / due time / tags / associated connection; supports status filtering and batch cleanup

Toolbox · System Management

Card Description
Process Management List + sort indicators + filtering + 4 detail tabs (Summary / Environment Variables / File Descriptors / Kernel Stack); the details panel can be dragged taller; supports killing processes
Port Monitor Dual-pane layout for listening ports and ESTABLISHED connections, with draggable resizing; columns are sortable, and double-click opens GeoIP details
Command History Aggregates shell / REPL history for the current user (bash / zsh / fish / sh / python / node / mysql / psql / sqlite / redis), sorted by time descending; each row can be copied with one click or sent to the current terminal
Service Management systemd service list (service name / status / startup enabled); click a row to tail the journal below; start / stop / restart / enable / disable all require confirmation
Scheduled Tasks Three tabs: cron (including /etc/crontab + cron.d + each user's crontab), systemd timers, and at queue; clicking a row shows the triggered service / unit file / parsed cron fields
Security Audit Five tabs: currently online (who/w), login history (last), failed attempts (lastb), sshd failure logs (auth.log/journalctl), and users & groups
Software & Environment Four tabs: installed packages (with search), repository sources (apt/yum/apk/pacman), environment variables, and PATH commands (scanned on demand)
Container Management Unified API for docker / podman; lists all containers (including stopped ones) + port mappings; details show state/ports/mounts/networks/env; copy the full container ID with one click, and open the mounted host directory directly in SFTP; Start/Stop/Restart plus tail 200 logs; compatible with podman output that emulates the docker CLI
Firewall Management Overview: detect and display installation and runtime state for iptables / ip6tables / nftables / ufw / firewalld / Fail2Ban; supports service start/stop control. iptables / ip6tables: switch table (filter/nat/mangle/raw) and chain; rule table; high-risk rules (full-range ACCEPT) highlighted in red and medium-risk ones in orange. nftables: raw ruleset output with risk highlighting. ufw: numbered rule table + add / delete rule + enable / disable. firewalld: zone list + service control + permanent reload. Fail2Ban: jail status + banned IP list + one-click unban
Resource Alerts Background polling of CPU / memory / disk / load / swap; when thresholds stay exceeded, a notification appears in the lower-right corner (disabled by default, enable via rss.alerts.enabled); triple suppression: consecutive trigger count · cooldown time · no more reminders for the day; notifications include a View Dashboard quick action
Dependency Check One-click health check for 9 categories of required remote tools such as ss/netstat/procps/iproute2, with install commands suggested by distribution

Toolbox · Plugin Management

Migrated: Plugin management has been moved out of the Toolbox and is now an independent top-level panel in the sidebar. See Plugin Management below.

Plugin Management (Independent Sidebar Panel)

Card Description
Plugin Usage Guide View the plugin usage guide and feature overview (the welcome page)
Operation Audit Log Persists every terminal / panel / Copilot tool invocation in JSONL; 4+1 tabs (All / Terminal / Panel / Copilot / Errors); supports filtering by date / connection / keyword; supports realtime mode, export, and clear; retention period is configurable

SSH Terminal

Integrated xterm; when Terminal Directory Sync is enabled, running cd in the terminal syncs the SFTP explorer directory via OSC 7 (disabled by default and available from the SFTP panel or settings).

Automatic Account Switching (Per Connection)

Enable sudo / su switching in the connection editor: after the interactive terminal starts, it injects sudo -i -u or su - user; the exec channel uses printf base64 | base64 -d | sudo -n -H -u 'user' bash -s wrapping, with no shell injection risk; all Copilot tool calls use the same privilege-escalation path.

Remote Editing

Double-click a remote file to download it into a local cache, then save to write it back automatically. The cache path can be configured with rss.editor.tempDir; if left empty, cache/ under extension storage is used.


Copilot Chat Tools

This extension integrates SSH/SFTP/system capabilities into GitHub Copilot Chat through VS Code native Language Model Tools. No service needs to be started, and no .vscode/mcp.json configuration is required. VS Code handles tool discovery, authorization, and lifecycle management.

Available Tools

Tool (# reference name) Description
#sshListConnections List SSH connections, primary/alternate addresses, and user-provided internal/external network labels; returns structured expiration status and can proactively remind on approaching expiration (without sensitive fields)
#sshExec Execute commands on a specified connection; commands matching the dangerous-command blacklist are rejected immediately; confirmation dialog is shown by default
#interactiveStart / #interactiveRead Start a specific interactive administration tool in a controlled PTY and incrementally read menu / prompt output by cursor
#interactiveSend / #interactiveClose After confirmation each time, send one line of non-sensitive input or terminate the interactive session; passwords / passphrases / OTPs are forcibly redirected to a real terminal
#sftpList / #sftpRead / #sftpWrite Remote directory listing and text read/write (>1MB cannot be read; use #sftpDownload instead)
#sftpUpload / #sftpDownload Upload / download a single file; uploads to protected paths are rejected
#sftpUploadDir Recursively upload a local directory (requires confirmation); conflict policy is overwrite (default) or skip
#systemInfo Collect uname -a; uptime; free -h; df -h
#topProcesses / #findProcesses / #killProcess Find top processes by CPU/memory; match ps args by substring; KILL requires confirmation and enforces signal / PID allowlists
#inspectPort Port listening status + ESTABLISHED connection count + deduplicated remote IP count + optional samples
#tailLog One-shot tail -n snapshot (non-streaming), with optional grep -F filtering
#listSnippets / #runSnippet List currently available snippets; fill into terminal with optional auto-enter (subject to dangerous-command allowlist and connection binding validation)
#listPortForwards List port-forwarding configurations + realtime status (connection count / cumulative bytes / last error)
#listServices List systemd/sysv services and their active/enabled status; supports name filtering and showing only running services
#serviceLogs Read a journalctl log snapshot for a specified service (unit), with optional substring filtering
#listScheduledTasks Summarize crontab / systemd timer / at queue; can optionally include details for a specific timer
#firewallOverview Detect installation, runtime, and startup-enabled status for iptables/ip6tables/nftables/ufw/firewalld/fail2ban
#listPackages Installed packages (optionally filtered by name) + repository sources; when includeEnv is enabled, environment variables are included with sensitive fields automatically masked as ***
#processDetail Details for a single PID such as command line / working directory / open files; when includeEnv is enabled, process environment variables are also included (and automatically masked in the same way)
#securityAudit Currently online users, recent successful/failed logins, sshd authentication failure summaries, plus optional overviews of users/groups/sudoers

To-do management remains in the extension's Toolbox, but is no longer registered as a Copilot Chat tool, to avoid occupying tool-list and model-selection context.

How to Use

  1. Connect to the target host first in the Connections panel.
  2. Open Copilot Chat, type #, choose sshExec, sftpList, and so on from the popup tool list; or describe your intent directly and let Copilot choose the tools.
  3. Destructive operations are intercepted by VS Code's native second-confirmation UI.

Deployment Example

Help me deploy seller-api using the prod-1 connection:
1. Run ./service.sh backup in /data/api/seller-api;
2. Upload the local /Users/me/work/seller-api/target/seller-api.jar to the remote path with the same name;
3. Recursively upload the local target/lib/ to overwrite the remote lib/;
4. Run ./service.sh restart;
5. Read the last 200 lines of log/seller-api.log and check whether there are startup errors.

Copilot will break it down as: #sshExec backup → #sftpUpload jar → #sftpUploadDir lib → #sshExec restart → #tailLog log. Each dangerous operation triggers VS Code's native confirmation dialog.


Data Security and Privacy

Where Your Data Is Stored

Data Type Storage Location
Host / port / username / groups / ProxyJump references connections.json (VS Code globalStorage) — plain JSON text, readable only on the local machine, never written to ~/.ssh
Password / private key content / passphrase / privilege-escalation password / GeoIP API key VS Code SecretStorage (macOS Keychain · Windows Credential Vault · Linux libsecret)
Host fingerprints known_hosts.json (also in globalStorage); written on first TOFU trust, and changes trigger an explicit dialog
Local cache of remote files cache/ subdirectory or rss.editor.tempDir, local only
Operation audit log audit/ in globalStorage, local JSONL with configurable retention; command bodies, LM file content, and interactive input are not persisted

Outbound Network Traffic

  • The extension itself does not report any telemetry and does not send any data to the author's servers.
  • SSH / SFTP traffic goes only to the hosts you configure yourself (or through the jump hosts you configure yourself).
  • GeoIP resolution is disabled by default. When enabled, only peer public IPs from the ESTABLISHED list are sent to the provider you choose; API keys are stored in SecretStorage.
  • When you invoke a Copilot Chat tool, its result can include connection metadata, remote command output, file or log content, process details, and login records. VS Code passes that result to your selected language-model provider under that provider's privacy terms. The extension does not operate a separate relay or author-owned backend.

Import / Export of Configuration

Use ☁⏫ / ☁⏬ in the title bar of the Connections panel to export / import; you can also search Export Connection Configuration / Import Connection Configuration in the Command Palette.

Mode Description
Encrypted Export (Recommended) PBKDF2-SHA256 (200k iterations) key derivation + AES-256-GCM; importing requires the same passphrase; tampered files fail to decrypt
Structure Only Exports connection metadata, group hierarchy, snippets, port-forward definitions, and log bookmarks without credentials. Review hostnames, usernames, notes, paths, and commands before sharing
Plaintext Export Requires modal confirmation; for short-term local debugging only

When importing, all IDs are reassigned, and existing connections are never overwritten; ProxyJump references are rewritten based on the new mapping.

Unified Protection Layer for SFTP / Copilot Operations

Write / delete / rename / upload / create folder operations all go through a unified path-protection layer. No matter whether the source is the SFTP browser, the built-in VS Code file explorer (rss-sftp://), terminal OSC rss-edit, or Copilot Chat #sftp* tools, the rules are the same:

  • Protected root paths (exact match, only blocks the directory itself when used as the target): / /bin /sbin /boot /dev /lib /lib64 /proc /sys /usr /var /root /home /opt /run /srv /mnt /media
  • Protected subtree prefixes (if matched, any child file underneath is rejected): /bin/ /sbin/ /boot/ /dev/ /lib/ /lib64/ /proc/ /sys/ /usr/ /root/
    • By default, /etc/ is no longer included. Editing service configuration such as /etc/nginx/*.conf and /etc/systemd/** is a legitimate ops scenario. If you want stricter protection, add "/etc/" to rss.security.protectedSubtrees in your settings.
  • Sensitive filenames (even if the parent directory does not match a protected subtree, matching the basename still causes rejection): .ssh/{authorized_keys,known_hosts,config,id_*}, sudoers(.d/*), shadow, gshadow, passwd, crontab

Path normalization handles special characters strictly: control characters are rejected (NUL / CR / LF / TAB / DEL); // is collapsed; . / .. are resolved and prevented from escaping above root; under POSIX semantics, \ is treated as a normal character rather than a separator. Invalid regex patterns are silently ignored and written to the output log, and will not crash the extension.

Manual bypass: when an interactive source (SFTP browser / file explorer / OSC rss-edit) hits a blocked path, a modal dialog appears with an I understand, continue button. Clicking it allows only this single operation and writes a warn-level audit log entry (including path, operation type, and connection name). If you do not want any bypass at all, set rss.security.allowBypass to false; then all blocks are hard stops. Copilot Chat tool invocations are always hard-blocked and are not affected by allowBypass to prevent AI from bypassing protections on its own.

Configurable items:

Setting Description
rss.security.protectedPaths Exact-match list of protected root paths
rss.security.protectedSubtrees List of subtree prefixes (entries must start and end with /; a missing trailing / is automatically added)
rss.security.sensitiveFilePatterns Regex array for sensitive filenames (i mode)
rss.security.interactiveCommandMode Controlled interactive strategy: strict (default, real-path allowlist) / auto (automatically allow trusted system programs)
rss.security.interactiveAllowedCommands Optional real absolute paths of trusted remote executables in strict mode; ignored in auto mode
rss.security.allowBypass Whether interactive sources may use the one-time I understand, continue bypass (default true)

If #sshExec matches a dangerous command (rm -rf /, mkfs, dd of=/dev/, shutdown, firewall flushes, crontab -r, curl|sh, kernel parameter writes, and so on), it is rejected immediately. The error message instructs the user to run it manually in a real terminal with the appropriate identity (sudo). The command-level dangerous-command allowlist never provides any bypass switch.

Controlled Interactive Sessions

#interactiveStart first resolves the real executable path through command -v + realpath / readlink -f. By default, rss.security.interactiveCommandMode is strict, which requires the result to match the optional path allowlist. When switched to auto, ordinary programs that are owned by root, not writable by group/others, and not located in user or temporary directories may be allowed automatically. Both modes reject system-level dangerous commands, shell syntax, credential parameters, as well as shells / interpreters / command wrappers / escape-capable programs. #interactiveRead reads incrementally by cursor and treats remote output as untrusted data; #interactiveSend shows the full one-line input before every send and requires confirmation, while also rejecting shell metacharacters and reusing the dangerous-command blacklist; #interactiveClose terminates the PTY and releases resources.

  • Up to 2 active sessions per connection and 10 globally; an active session is terminated automatically after 15 minutes of inactivity, and output is retained for 5 minutes after termination.
  • Output buffer limit is 256 KiB, and a single read returns at most 48 KiB; ANSI / OSC control sequences are removed before data is handed to the model.
  • Common password, token, and API key output values are masked first; once prompts for password, passphrase, OTP, PIN, token, verification code, and similar inputs are detected, the session is blocked and terminated immediately, and the model must not continue sending input; a real SSH terminal must be used instead.
  • The input body sent by #interactiveSend is not written to the audit log. Only length, connection, session, and whether Enter was sent are recorded, to avoid persisting secrets after accidental submission.

Credential Best Practices

  • Prefer SSH Agent or private keys with a passphrase over raw passwords.
  • Put jump hosts in front of critical servers to reduce public exposure.
  • Use Test Connection instead of connecting directly so you can validate authentication without writing known_hosts.

What Commands Are Executed on the Remote Host?

This extension does not install any agent or download any binary to the remote host. All functionality is built on standard OpenSSH capabilities plus common Linux tools. The commands below are triggered by explicit user actions only, with no silent background invocation.

Panel / Action Required Privilege Typical Commands
Establish SSH / SFTP Regular user Standard OpenSSH handshake; SFTP subsystem ls/stat/open/read/write/mkdir/rename/remove
Copilot controlled interaction Depends on the confirmed command Uses SSH PTY to execute the specific administration tool confirmed by the user; every round of non-sensitive input is confirmed separately; no general-purpose shell is exposed and no remote agent is installed
Terminal cwd sync (can be disabled) Regular user PROMPT_COMMAND / precmd injects OSC 7
Dashboard · System / Network Regular user read uname / uptime, /proc/{loadavg,meminfo,cpuinfo,net/dev}, df -P, fallback ip -s link and ifconfig
Process Management Regular user read · KILL requires corresponding privilege ps -eo …, /proc/<pid>/{status,environ,fd,stack}; KILL always requires explicit confirmation
Port Monitor Regular user Prefer ss -ltnp / -tnp, fallback netstat
Service Management Start/stop may require sudo systemctl list-units / show / status, journalctl -u …; start/stop / enable / disable all require confirmation
Scheduled Tasks Regular user crontab -l, cat /etc/crontab /etc/cron.d/*, systemctl list-timers, atq / at -c, no modifications
Command History Regular user cat ~/.bash_history ~/.zsh_history ~/.config/fish/fish_history and similar; never modifies or triggers execution
Security Audit Regular user read who / w / last / lastb; journalctl _COMM=sshd or /var/log/auth.log
Software & Environment Regular user read dpkg -l / rpm -qa / apk info / pacman -Q; printenv; ls $PATH on demand
Container Management Container group / sudo docker ps -a / inspect / logs --tail 200 (same idea for podman)
Firewall Management root or sudo (privilege required to collect rules) iptables -t <tbl> -L -n -v --line-numbers, nft list ruleset, ufw status numbered, firewall-cmd --list-all-zones, fail2ban-client status [<jail>]; control actions (ufw add/delete, fail2ban unban, systemctl) all require confirmation
Dependency Check Regular user command -v ss netstat ps systemctl docker … capability probes; does not install anything
Resource alert polling (rss.alerts.enabled) Regular user read Five-in-one: cat /proc/loadavg, grep … /proc/meminfo, grep '^cpu ' /proc/stat, df -Pk, nproc; default polling interval is 30s; disabled by default

The five read-only collection categories Service Management / Scheduled Tasks / Security Audit / Software & Environment / Firewall Management are also exposed to Copilot Chat through the tools #listServices #serviceLogs #listScheduledTasks #securityAudit #listPackages #firewallOverview, using exactly the same commands as shown above; when #listPackages / #processDetail return environment variables, suspected password/key/token fields are automatically masked as ***.


Remote Dependency Check

The VS Code side never pushes any binary to the remote host, so the remote host must already provide tools such as ss / netstat, ps, /proc, ip / ifconfig, and tar / gzip. Common minimal Alpine images, container images, and customized RHEL systems often miss some of them.

Entry points:

  • ✓ icon in the title bar of the Connected Sessions panel
  • ✓ inline button on the right side of each active session row
  • Click Click here to check remote dependencies → when Port Monitor is empty

What the panel provides:

  • OS fingerprint (PRETTY_NAME / distro family / kernel / architecture / whether root)
  • Probe results for 9 capability categories (command + details)
  • Recommended install command automatically selected by distribution (apt / yum / apk / pacman) + one-click copy
  • Open Terminal button to paste and run immediately in the SSH terminal

Settings

All settings are available in VS Code Settings → search for All in One SSH Studio, or edit settings.json directly:

Setting Key Type Default Description
rss.storage.location enum (global|workspace) global Storage location of the connection configuration file; never written to ~/.ssh
rss.editor.tempDir string "" Local cache directory for remote files; if empty, cache/ under extension storage is used
rss.sftp.concurrency number 4 Number of concurrent SFTP tasks
rss.sftp.autoOpenExplorer boolean true Automatically open the SFTP explorer after a successful connection
rss.sftp.listCacheTtl number 8 TTL of the SFTP file-list cache (seconds, 0 = disabled)
rss.sftp.deletePreStat boolean false Whether to recursively count child items / size before deleting a folder for the confirmation dialog
rss.sftp.deleteUseShellRm boolean false When deleting a folder, use the remote shell command rm -rf to remove it in one shot (only one round trip, significantly faster for large remote directories)
rss.sftp.writeConfirm boolean false When editing an online file via rss-sftp://, show a confirmation before manual save (Ctrl+S) to avoid accidentally overwriting the remote file
rss.terminal.defaultShell string "" Shell used when starting the remote terminal; if empty, the server default is used
rss.terminal.syncCwd boolean false Sync terminal cwd to the SFTP panel via OSC 7; disabled by default and can be toggled temporarily in the SFTP panel
rss.dashboard.refreshInterval number 5 Auto-refresh interval of the dashboard (seconds)
rss.process.refreshInterval number 3 Refresh interval of Process Management (seconds)
rss.network.refreshInterval number 3 Refresh interval of Port Monitor (seconds)
rss.transfer.maxConcurrent number 4 Maximum concurrency of the transfer queue
rss.geoip.provider enum (none|ip-api|ipinfo|custom) none GeoIP provider for Port Monitor
rss.geoip.urlTemplate string "" Custom GeoIP URL template with {ip} and {key} placeholders
rss.geoip.fieldMap object {country,region,city,org} Mapping of custom GeoIP response fields (dot-path syntax)
rss.audit.retentionDays number 30 Retention period of the operation audit log in days
rss.portForward.defaultListenAddr string 127.0.0.1 Default listen address for new local port forwarding
rss.snippets.confirmRun boolean true Whether command snippets require confirmation before being sent to the terminal
rss.tools.<id>.enabled boolean true Controls whether each module is shown in the Toolbox; 14 configurable ids: snippets / portForward / logViewer / todos / process / port / history / services / schedules / software / containers / security / firewall / deps; sftp and transfer are always enabled; changes take effect immediately with no reload required
rss.alerts.enabled boolean false Master switch for resource-threshold alerts (disabled by default)
rss.alerts.pollInterval number 30 Alert polling interval in seconds (minimum 10)
rss.alerts.cooldownMinutes number 15 Alert cooldown for the same metric on the same connection (minutes)
rss.alerts.consecutiveCount number 2 Number of consecutive threshold breaches required before a notification is triggered (debounce)
rss.alerts.cpu.threshold number 90 CPU usage alert threshold (%)
rss.alerts.memory.threshold number 90 Memory usage alert threshold (%)
rss.alerts.disk.threshold number 85 Disk usage alert threshold (%) using the highest value across all mount points
rss.alerts.load.threshold number 2.0 System load threshold (1-minute load / CPU core count, default 2.0×)
rss.alerts.swap.threshold number 50 Swap usage alert threshold (%)

Set or clear a GeoIP API key with All in One SSH Studio: Securely Set GeoIP API Key… in the Command Palette. The value is stored in VS Code SecretStorage and is not written to settings.json.

settings.json Example

{
  "rss.dashboard.refreshInterval": 5,
  "rss.network.refreshInterval": 2,
  "rss.geoip.provider": "ip-api",
  "rss.terminal.syncCwd": false
}

Command Palette Quick Reference

Command Purpose
All in One SSH Studio: Show Welcome Page Reopen the welcome guide
All in One SSH Studio: New SSH Connection Quickly add a server connection
All in One SSH Studio: Import / Export Connection Configuration Configuration migration
All in One SSH Studio: Open Terminal / Open SFTP Explorer Interact with connected sessions
All in One SSH Studio: Check Remote Dependencies Remote dependency health check

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft