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.

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.3-cp314-cp314-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.14Windows x86-64

sshdcommander-4.0.3-cp312-cp312-manylinux_2_34_x86_64.whl (14.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

File details

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

File metadata

File hashes

Hashes for sshdcommander-4.0.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 c938d78e40cd988dfb0dbe8f29f685752556d1c2bfc05e23011b4b1c04e248cc
MD5 539efdcbaae6c1d55cf81a8f3071e91d
BLAKE2b-256 c12745bf09044fea5efe21ed9e2a242b6596ddebb0f11886e35c61134c4f58a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sshdcommander-4.0.3-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 02050461687188d7b1aa7b2efd5ae6f0744beb24143615e48af72534ecc48d30
MD5 e5546fdce5ea33129de41ac1441871c1
BLAKE2b-256 da2f68980a93afdc25c4169d887e0e5450a83a43455c3fea9f884557918593be

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