Virgo SSH
The Ultimate SSH Terminal Extension for Visual Studio Code
Virgo SSH is a powerful, feature-rich Visual Studio Code extension that provides seamless SSH connectivity directly from your editor. With secure credential management, connection profiles, SSH key generation, and full terminal emulation, Virgo SSH transforms VS Code into a complete remote server management tool with zero friction.
Features
Core Capabilities
| Feature |
Description |
| Quick Connect |
Connect instantly using user@host:port format |
| Connection Profiles |
Save and manage multiple server connections |
| Password Authentication |
Securely stored in OS keychain via VS Code SecretStorage |
| SSH Key Authentication |
Full support for RSA and Ed25519 private keys |
| SSH Key Generator |
Generate Ed25519 or RSA 4096 key pairs directly from VS Code |
| SSH Config Import |
Import hosts from your existing ~/.ssh/config file |
| Full Terminal Emulation |
ANSI colors, mouse support, and terminal resizing |
| Status Bar Integration |
Real-time connection status at a glance |
Key Features
- Secure Credential Storage: Passwords are stored in your operating system's secure keychain (Windows Credential Manager, macOS Keychain, Linux Secret Service) - never in plain text files
- Zero Server Footprint: Unlike some remote extensions, Virgo SSH doesn't install anything on your servers
- Encrypted Key Support: Works with passphrase-protected private keys
- Intelligent Authentication: Automatically detects and handles keyboard-interactive authentication
- Connection Keepalive: Maintains stable connections with configurable keepalive intervals
- One-Click Disconnect: Easily disconnect from the status bar or command palette
- Private Key Validation: Warns about insecure file permissions on Linux/macOS
Installation
Visual Studio Code
- Open Visual Studio Code
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Virgo SSH"
- Click Install
Cursor
Virgo SSH is available on the Open VSX Registry, which Cursor uses by default:
- Open Cursor
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Virgo SSH"
- Click Install
Windsurf
Virgo SSH is available on the Open VSX Registry, which Windsurf uses by default:
- Open Windsurf
- Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- Search for "Virgo SSH"
- Click Install
Quick Start
Method 1: Quick Connect (Fastest)
- Open Command Palette (Ctrl+Shift+P / Cmd+Shift+P)
- Type
Virgo SSH: Quick Connect
- Enter your connection:
username@hostname:port (e.g., root@192.168.1.100:22)
- Enter your password when prompted
- You're connected! A new terminal will open with your SSH session
Method 2: Using Profiles (Recommended for frequent connections)
- Open Command Palette
- Run
Virgo SSH: Create Profile
- Follow the prompts to set up your connection
- Next time, just run
Virgo SSH: Connect to Profile and select your saved profile
Method 3: Import from SSH Config
If you already have hosts configured in ~/.ssh/config:
- Open Command Palette
- Run
Virgo SSH: Import SSH Config
- Select the hosts you want to import
- Your hosts are now available as Virgo SSH profiles!
Configuration
Virgo SSH uses a .virgo-ssh.json configuration file in your workspace root to store connection profiles.
Configuration File Structure
{
"profiles": [
{
"name": "Production Server",
"host": "prod.example.com",
"port": 22,
"user": "deploy",
"authMethod": "key",
"privateKeyPath": "~/.ssh/id_ed25519",
"remoteWorkDir": "/var/www/app",
"description": "Main production server"
},
{
"name": "Development VM",
"host": "192.168.1.100",
"port": 2222,
"user": "developer",
"authMethod": "password",
"description": "Local development virtual machine"
}
],
"defaults": {
"port": 22,
"timeout": 10000,
"keepaliveInterval": 30000,
"keepaliveCountMax": 3
}
}
Profile Options
| Option |
Type |
Required |
Description |
name |
string |
Yes |
Unique profile name |
host |
string |
Yes |
Server hostname or IP address |
port |
number |
No |
SSH port (default: 22) |
user |
string |
Yes |
SSH username |
authMethod |
string |
Yes |
"password" or "key" |
privateKeyPath |
string |
No |
Path to private key file (supports ~/) |
remoteWorkDir |
string |
No |
Directory to cd into after connecting |
description |
string |
No |
Profile description for reference |
Default Settings
| Option |
Type |
Default |
Description |
port |
number |
22 |
Default SSH port for all profiles |
timeout |
number |
10000 |
Connection timeout in milliseconds |
keepaliveInterval |
number |
30000 |
Keepalive packet interval (ms) |
keepaliveCountMax |
number |
3 |
Max missed keepalives before disconnect |
Commands
Access these commands via the Command Palette (Ctrl+Shift+P / Cmd+Shift+P):
| Command |
Description |
Virgo SSH: Quick Connect |
Connect using user@host:port format |
Virgo SSH: Connect to Profile |
Select and connect to a saved profile |
Virgo SSH: Disconnect |
Close the current SSH connection |
Virgo SSH: Create Profile |
Create a new connection profile |
Virgo SSH: Edit Profile |
Open config file to edit profiles |
Virgo SSH: Delete Profile |
Remove a saved profile |
Virgo SSH: Import SSH Config |
Import hosts from ~/.ssh/config |
Virgo SSH: Generate SSH Key |
Generate a new Ed25519 or RSA key pair |
Virgo SSH: Show Config |
Open the .virgo-ssh.json file |
VS Code Settings
Configure global extension behavior in VS Code settings:
{
"virgoSsh.enable": true,
"virgoSsh.showStatusBar": true
}
| Setting |
Type |
Default |
Description |
virgoSsh.enable |
boolean |
true |
Enable/disable the extension |
virgoSsh.showStatusBar |
boolean |
true |
Show connection status in status bar |
Status Bar
The status bar shows real-time connection status:
| Icon |
Text |
Meaning |
| 🔌 |
Virgo SSH |
Not connected - Click to connect |
| 🔄 |
SSH: Connecting... |
Connection in progress |
| 💻 |
SSH: user@host:port |
Connected - Click to disconnect |
| ⚠️ |
SSH: Error |
Connection error (red background) |
SSH Key Generation
Virgo SSH can generate SSH key pairs directly from VS Code:
- Run
Virgo SSH: Generate SSH Key
- Choose key type:
- Ed25519 (Recommended) - Modern, fast, and secure
- RSA 4096 - Traditional, widely compatible
- Enter a name for your key
- Optionally set a passphrase for extra security
- Choose where to save the key (default:
~/.ssh/)
- Copy the public key to add to your server's
authorized_keys
Security
Password Storage
- Passwords are stored using VS Code's SecretStorage API
- On Windows: Windows Credential Manager
- On macOS: Keychain
- On Linux: Secret Service (GNOME Keyring, KWallet, etc.)
- Passwords are never stored in
.virgo-ssh.json or any plain text file
Private Key Security
- Virgo SSH validates private key file permissions on Linux/macOS
- Keys should have permissions
600 (owner read/write only) or 400 (owner read only)
- A warning is shown if permissions are too permissive
- Passphrase-protected keys are fully supported
Best Practices
- Use SSH keys instead of passwords when possible
- Protect your keys with a passphrase
- Never share your private keys
- Regularly rotate your credentials
- Use Ed25519 keys for new deployments (more secure than RSA)
Use Cases
Development Workflow
- Local Development Server: Quick access to your local VM or Docker containers
- Staging Environment: Test deployments before production
- Production Monitoring: Check logs and server status
DevOps Tasks
- Server Management: Run administrative commands
- Log Analysis: Tail logs in real-time
- Deployment: Execute deployment scripts
- Troubleshooting: Debug issues directly on servers
Learning & Education
- Learn Linux: Practice command-line skills
- Server Administration: Learn system administration
- Networking: Understand SSH and remote connections
Troubleshooting
Common Issues
Q: Connection times out
A: Check the following:
- Verify the hostname/IP is correct
- Ensure the port is open (default: 22)
- Check if a firewall is blocking the connection
- Try increasing
timeout in defaults
Q: Authentication failed
A: Try these solutions:
- Verify username and password are correct
- For SSH keys, ensure the public key is in
~/.ssh/authorized_keys on the server
- Check private key file permissions (should be 600 or 400)
- If using passphrase-protected key, make sure you enter the correct passphrase
Q: "Host key verification failed" or similar
A: This is a security feature. The first time you connect to a server, you may need to:
- Accept the host key when prompted
- Or manually add the server's host key to your
known_hosts file
Q: Terminal colors don't work
A: Ensure your remote server has:
- A proper
TERM environment variable (usually xterm-256color)
- Color support enabled in your shell configuration
Q: Connection drops frequently
A: Adjust keepalive settings in your config:
{
"defaults": {
"keepaliveInterval": 15000,
"keepaliveCountMax": 5
}
}
Viewing Logs
- Open the Output panel (View → Output)
- Select "Virgo SSH" from the dropdown
- Review timestamped log entries for connection details and errors
About Virgo Internet Services
Virgo SSH is developed and maintained by Mustafa Odabaşı, Software Developer at Virgo Internet Services Ltd. — delivering high-quality web solutions since 1997.
📧 Contact: modabasi@virgo.com.tr
Support
If you find this extension useful, consider supporting its development:

Check out other Virgo extensions:
Visual Studio Code Marketplace
Open VSX Registry (Cursor, Windsurf, etc.)
Enjoy using Virgo SSH! If you find it helpful, please consider leaving a review on your marketplace of choice.