Skip to main content

Persistent SSH daemon for AI agents — session pooling, SHA-256 verified SFTP, deploy manifests, certificate auth, and OS keyring credential storage. Built for Claude Code, Cursor, GitHub Copilot, and any AI agent with shell access.

Reason this release was yanked:

Broken build: missing pidfile, exit_codes_doc, state_manager modules. Use v4.0.3+.

Project description

sshDCommander

Persistent SSH daemon for AI agents and DevOps automation.

sshDCommander bridges AI agents to remote servers with persistent SSH sessions, SHA-256 verified file transfers, deploy manifests, and certificate-based authentication.

Why sshDCommander?

  • Persistent sessions — daemon maintains long-lived SSH connections across tool calls, eliminating reconnect overhead
  • AI-agent ready — built for Claude Code, Cursor, GitHub Copilot, Aider, Cline, Windsurf, Codex CLI, and any agent with shell access
  • SHA-256 integrity — every file transfer is checksum-verified; deploy manifests record and verify deployment state
  • Certificate auth — built-in Ed25519 CA for certificate-based authentication without password or key sprawl
  • OS keyring — credentials stored in the OS keyring (DPAPI on Windows, libsecret on Linux), never in config files

CLI Tools

Tool Purpose
sshdcmd Execute remote commands with session reuse
sshdcp SFTP file transfer with SHA-256 verification and deploy manifests
sshdctl Daemon management, server profiles, certificate authority

Quick Start

pip install sshdcommander
sshdctl start-daemon
sshdctl server add --name prod --host <your-server-ip> --user deploy
sshdcmd --client-id my-agent "uptime" --server prod --connect

Key Features

  • Multi-server session pool (10+ concurrent sessions)
  • Auto-reconnect with exponential backoff
  • Deploy manifests for deployment integrity verification
  • Reverse integrity auditing (drift detection)
  • Log streaming (sshdcmd --follow) — tail remote logs persistently
  • Docker management (sshdctl docker) — 9 subcommands for container lifecycle
  • Systemd management (sshdctl service) — 8 subcommands for service control
  • Directory sync (sshdcp sync) — bidirectional with SHA-256 checksums
  • Fleet management (--servers, --group) — parallel execution across multiple hosts
  • OpenSSH config import (sshdctl server import-ssh-config)
  • EOL conversion (--eol=on|off|auto) for cross-platform text transfers
  • Data portability export (sshdctl export) — ZIP with OpenSSH config
  • Connection quality metrics (RTT, jitter, reconnect tracking)
  • Remote OS detection (automatic Windows/Linux command adaptation)
  • Script mode for complex multi-step workflows
  • Multi-locale sudo support
  • SSH agent forwarding
  • Mandatory --client-id audit trail
  • Resume interrupted uploads
  • MSYS/Git Bash path demangling (automatic, zero config)

Enterprise Features

Available with an Enterprise license:

  • Policy Engine — command/path filtering, rate limiting, time restrictions, auto-rollback
  • Encrypted Config — AES-256-GCM encrypted policy files with key management
  • Session Recording — full transcripts with HMAC integrity seals
  • SIEM Integration — syslog, webhook, and file event exporters
  • SSO/IDP Integration — OIDC Device Authorization Grant with JWKS verification
  • External Secrets Manager — HashiCorp Vault, AWS, Azure, GCP backends
  • Ephemeral Credentials — short-lived SSH certificates via built-in CA
  • RBAC — role-based access control for team environments

Installation with --target (isolated installs)

When using pip install --target ./lib sshdcommander, the CLI entry points (sshdcmd, sshdcp, sshdctl) are not registered as executables. Two options:

Option A — Use the included wrapper scripts (recommended):

python ./lib/run_sshcmd.py --client-id my-agent "uptime" --server prod --connect
python ./lib/run_sshcp.py --client-id my-agent upload ./file.txt /opt/app/ --server prod
python ./lib/run_sshctl.py start-daemon

The wrappers handle the Python path automatically — no configuration needed.

Option B — Set PYTHONPATH and use -m:

export PYTHONPATH=/path/to/lib:$PYTHONPATH
python -m sshcmd --client-id my-agent "uptime" --server prod --connect
python -m sshcp --client-id my-agent upload ./file.txt /opt/app/ --server prod
python -m sshctl status

For standard usage, pip install sshdcommander registers CLI tools in your PATH automatically.

Links

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

sshdcommander-4.0.2-cp314-cp314-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.14Windows x86-64

sshdcommander-4.0.2-cp312-cp312-manylinux_2_34_x86_64.whl (13.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

File details

Details for the file sshdcommander-4.0.2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for sshdcommander-4.0.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 1ec9f05b329be1827410ef4357e2713154f8e82fb214e99fe0bdf2a9762bc7ec
MD5 f9de4280b082ec0a972ef66808ae5917
BLAKE2b-256 545d57711858ae5dde7725b3a923618145db2f765aaf38b43e72ae5dc1285cbe

See more details on using hashes here.

File details

Details for the file sshdcommander-4.0.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for sshdcommander-4.0.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a9cb8b0277bda10d11ac95d716d8b09f22cfbf504a4a2002504c88327e803378
MD5 b27c1f926cc455c1d4e445c59043c28a
BLAKE2b-256 9c91eb321bd8f2c54a672a6aad95a47d4f105d7b55f7f0c6f32bb40352f3adbc

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