Skip to main content

vssh - installs Go binary

Project description

vssh

PyPI

SSH/SCP CLI - Go binary installer

pip install vssh
vssh  # Auto-downloads Go binary on first run

This package automatically downloads and installs the native Go binary for your platform. Python License: MIT

Fast SSH alternative for server fleets. One shared secret. No key management.

pip install vssh

Pure Python standard library. No external packages. Linux and macOS.


Why vssh?

SSH vssh
Authentication Per-server public keys One shared HMAC secret
Add a new server Generate + copy key Just set the same secret
Revoke access Remove key from every server Rotate secret once
Connection setup Full handshake (~200–400ms) Token check (~1ms)
Server discovery IPs / DNS wire mesh auto-discovery
Fleet health None vssh status — all nodes
AI management ✓ MCP integration

How it works

Each server runs a persistent daemon on TCP port 48291. Every request includes an HMAC-SHA256 time-based token derived from the shared secret — no public key cryptography, no handshake overhead.

┌──────────────────────────────────────┐
│  Fleet                               │
│  ┌──────┐  ┌──────┐  ┌──────┐        │
│  │ web1 │  │ web2 │  │ db1  │  ...   │
│  │:48291│  │:48291│  │:48291│        │
│  └──┬───┘  └──┬───┘  └──┬───┘        │
│     └─────────┴─────────┘            │
│          wire / VPN                  │
└─────────────────┬────────────────────┘
                  │ TCP :48291
           ┌──────┴──────┐
           │ vssh client  │
           └─────────────┘

Setup

1. Install and start the daemon on each server

export VSSH_SECRET=your-shared-secret
vssh server

# Or install as a systemd service:
vssh install

Generate a strong secret:

python3 -c "import secrets; print(secrets.token_hex(32))"

2. Configure the client

With wire mesh VPN, vssh auto-discovers all nodes — no client config needed.

For standalone use, create ~/.vssh/config:

web1=192.168.1.10
web2=192.168.1.11
db1=192.168.1.20
SECRET=your-shared-secret

CLI Reference

Fleet status

vssh status           # All nodes — online/offline, latency
vssh status --full    # Status + disk, memory, load

Remote execution

vssh web1 "df -h"                 # Run command
vssh web1                         # Interactive shell
vssh web1 "df -h && free -h"      # Chained commands

File transfer

vssh put  ./nginx.conf web1:/etc/nginx/    # Upload
vssh get  web1:/var/log/app.log ./         # Download
vssh sync ./config/ web1:/etc/app/         # Sync directory
vssh rsync <local> <host>:<remote>         # Delta sync (changed blocks only)

Auto-compresses text files. Skips upload if remote file is identical (MD5 check).

RPC — typed JSON data

vssh rpc web1 get_disk
vssh rpc web1 get_processes '{"n": 5, "sort": "mem"}'
vssh rpc-list web1               # List all available methods
Method Returns
get_disk Disk usage
get_memory Memory stats
get_load Load averages
get_processes Top processes
get_gpu GPU VRAM, utilization, temp
get_logs Log file or journalctl
list_services Running systemd services
restart_service Restart nginx / docker / postgresql / redis
docker_containers Docker container list
file_read / file_write File operations

Other

vssh speed-test web1             # Measure transfer speed
vssh history [count] [filter]    # Command history
vssh stats [days]                # Transfer stats
vssh pipe-up web1:/path          # Pipe stdin to remote file
vssh pipe-down web1:"cmd"        # Pipe remote output to stdout

Tailscale Failover

If a node's primary VPN IP is unreachable, vssh automatically tries the Tailscale IP:

  1. Try wire VPN IP (1.5s timeout)
  2. Fall back to Tailscale IP, cache for 60s
  3. After 60s: retry wire — if recovered, clear failover

The failover map is built automatically by cross-referencing tailscale status with wire peers.


AI Management via MCP

{
  "mcpServers": {
    "vssh": { "command": "vssh-mcp" }
  }
}

"Check which servers are online and show me disk usage" "Deploy the new config to all web servers and reload nginx" "What's using the most memory on db1?"

MCP Tools

Tool Description
vssh_status Fleet status — all nodes, latency
vssh_exec Run command on remote server
vssh_put / vssh_get Upload / download file
vssh_sync Sync directory
vssh_speed_test Transfer speed
vssh_tunnel Port-forward tunnel
vssh_keys Show secret and server list

MeshPOP Stack

mpop     Fleet orchestration — monitor, manage, automate
vssh     Authenticated transport — remote exec, file transfer  ← this
wire     Encrypted mesh VPN — connects all nodes

License

MIT — MeshPOP

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vssh-4.1.4.tar.gz (12.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vssh-4.1.4-py3-none-any.whl (12.2 MB view details)

Uploaded Python 3

File details

Details for the file vssh-4.1.4.tar.gz.

File metadata

  • Download URL: vssh-4.1.4.tar.gz
  • Upload date:
  • Size: 12.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for vssh-4.1.4.tar.gz
Algorithm Hash digest
SHA256 9d2896d421137a00bbcfe7051ae492d251f4bfe2b3ed3b5d36a8609f1374aec0
MD5 2e36868c3e8f0fc50ce017d11f6d735b
BLAKE2b-256 0f5e88b0a4591143274fd7ed865b5280b2bfb5c952e2f9a0b059fbed3b029fdb

See more details on using hashes here.

File details

Details for the file vssh-4.1.4-py3-none-any.whl.

File metadata

  • Download URL: vssh-4.1.4-py3-none-any.whl
  • Upload date:
  • Size: 12.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for vssh-4.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b82adf58e29f34626a27c08946ad1729a863a0ddd396d5e6650f3edb002afddc
MD5 f93c12583318e64b4e0fb2d266b7f425
BLAKE2b-256 21b9506e99875ff2a09b178d984da82fd9bd2d7ce6aadef16842c95920a4c1e7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page