Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
sshmgr
command
Command sshmgr is the ssh-manager binary: a profile-based SSH key and config lifecycle manager.
|
Command sshmgr is the ssh-manager binary: a profile-based SSH key and config lifecycle manager. |
|
internal
|
|
|
cli
Package cli is the cobra command surface for ssh-manager.
|
Package cli is the cobra command surface for ssh-manager. |
|
core/authkeys
Package authkeys has pure helpers for editing an authorized_keys file, ported from src/ssh_manager/core/authorized_keys.py.
|
Package authkeys has pure helpers for editing an authorized_keys file, ported from src/ssh_manager/core/authorized_keys.py. |
|
core/expiry
Package expiry is the pure expiry-policy engine, ported from src/ssh_manager/core/expiry.py.
|
Package expiry is the pure expiry-policy engine, ported from src/ssh_manager/core/expiry.py. |
|
core/inventory
Package inventory is the deployment-tracking model, ported from src/ssh_manager/core/inventory.py.
|
Package inventory is the deployment-tracking model, ported from src/ssh_manager/core/inventory.py. |
|
core/key
Package key implements the ssh-manager key-naming convention, ported from src/ssh_manager/core/key.py.
|
Package key implements the ssh-manager key-naming convention, ported from src/ssh_manager/core/key.py. |
|
core/manifest
Package manifest is the ssh-manager manifest domain model, ported from src/ssh_manager/core/manifest.py.
|
Package manifest is the ssh-manager manifest domain model, ported from src/ssh_manager/core/manifest.py. |
|
core/providers
Package providers is the read-only provider catalog, ported from the spec/ registry parts of src/ssh_manager/providers (base.py + registry.py).
|
Package providers is the read-only provider catalog, ported from the spec/ registry parts of src/ssh_manager/providers (base.py + registry.py). |
|
core/renderer
Package renderer renders the managed SSH config, ported from src/ssh_manager/core/renderer.py (+ its two Jinja2 templates).
|
Package renderer renders the managed SSH config, ported from src/ssh_manager/core/renderer.py (+ its two Jinja2 templates). |
|
platform
Package platform isolates the OS-specific behaviour sshmgr needs, so the rest of the tree can stay free of runtime.GOOS branches: terminal handling for reading secrets without echoing them (here), and the OS predicates every other package asks its questions through (os.go).
|
Package platform isolates the OS-specific behaviour sshmgr needs, so the rest of the tree can stay free of runtime.GOOS branches: terminal handling for reading secrets without echoing them (here), and the OS predicates every other package asks its questions through (os.go). |
|
services/agent
Package agent adds keys to the ssh-agent (macOS keychain), ported from services/agent.py + facade.load.
|
Package agent adds keys to the ssh-agent (macOS keychain), ported from services/agent.py + facade.load. |
|
services/bundler
Package bundler makes and restores an age-encrypted backup.
|
Package bundler makes and restores an age-encrypted backup. |
|
services/configsvc
Package configsvc renders, checks, and shows the SSH config, ported from src/ssh_manager/services/configsvc.py.
|
Package configsvc renders, checks, and shows the SSH config, ported from src/ssh_manager/services/configsvc.py. |
|
services/deployer
Package deployer installs a key's public half on its target(s) and records the deployment, ported from services/deployer.py.
|
Package deployer installs a key's public half on its target(s) and records the deployment, ported from services/deployer.py. |
|
services/doctor
Package doctor diagnoses the install: deps, perms, agent, known_hosts, manifest-vs-disk drift, and dangling keys.
|
Package doctor diagnoses the install: deps, perms, agent, known_hosts, manifest-vs-disk drift, and dangling keys. |
|
services/editor
Package editor does manifest editing - profile/host add·edit·delete - ported from services/editor.py.
|
Package editor does manifest editing - profile/host add·edit·delete - ported from services/editor.py. |
|
services/importer
Package importer onboards an existing ~/.ssh into the manifest + inventory, ported from services/importer.py.
|
Package importer onboards an existing ~/.ssh into the manifest + inventory, ported from services/importer.py. |
|
services/initsvc
Package initsvc creates and converges the per-user home, ported from facade.init: it (re)creates the directory scaffolding, seeds the starter files (manifest, inventory, .env) when missing, and re-asserts secret perms.
|
Package initsvc creates and converges the per-user home, ported from facade.init: it (re)creates the directory scaffolding, seeds the starter files (manifest, inventory, .env) when missing, and re-asserts secret perms. |
|
services/keyaudit
Package keyaudit is the one definition of what "dangling" means for a key.
|
Package keyaudit is the one definition of what "dangling" means for a key. |
|
services/keystore
Package keystore generates and fingerprints SSH keys by shelling out to ssh-keygen, ported from services/keystore.py.
|
Package keystore generates and fingerprints SSH keys by shelling out to ssh-keygen, ported from services/keystore.py. |
|
services/keysvc
Package keysvc is the key-centric read layer: for every key the manifest owns, what is on disk for it, which hosts wire it, and where it is deployed.
|
Package keysvc is the key-centric read layer: for every key the manifest owns, what is on disk for it, which hosts wire it, and where it is deployed. |
|
services/knownhosts
Package knownhosts pins host keys via ssh-keyscan, ported from services/knownhosts.py + facade.{known_hosts_targets,init_known_hosts}.
|
Package knownhosts pins host keys via ssh-keyscan, ported from services/knownhosts.py + facade.{known_hosts_targets,init_known_hosts}. |
|
services/lifecycle
Package lifecycle removes a profile or a key completely, as one guarded transaction.
|
Package lifecycle removes a profile or a key completely, as one guarded transaction. |
|
services/migratesvc
Package migratesvc moves a legacy home (~/.config/sshmgr from before the rename, or the older ~/.sshmgr) to the OS-standard home, ported from facade.migrate_home.
|
Package migratesvc moves a legacy home (~/.config/sshmgr from before the rename, or the older ~/.sshmgr) to the OS-standard home, ported from facade.migrate_home. |
|
services/netstat
Package netstat reports per-host network reachability for the `net` verb, ported from facade.network_status.
|
Package netstat reports per-host network reachability for the `net` verb, ported from facade.network_status. |
|
services/notifier
Package notifier drives the expiry surfaces from the pure expiry engine, ported from services/notifier.py: States (per-key expiry), Banner (the debounced inline reminder), and Notify (the cadence-gated desktop alert).
|
Package notifier drives the expiry surfaces from the pure expiry engine, ported from services/notifier.py: States (per-key expiry), Banner (the debounced inline reminder), and Notify (the cadence-gated desktop alert). |
|
services/preflight
Package preflight detects the OS and verifies the SSH tooling doctor needs, ported from services/preflight.py.
|
Package preflight detects the OS and verifies the SSH tooling doctor needs, ported from services/preflight.py. |
|
services/query
Package query is the read-only view layer over the manifest + inventory that backs list/view (and feeds audit), ported from src/ssh_manager/services/query.py.
|
Package query is the read-only view layer over the manifest + inventory that backs list/view (and feeds audit), ported from src/ssh_manager/services/query.py. |
|
services/reconciler
Package reconciler rebuilds the ~/.ssh tree from the manifest.
|
Package reconciler rebuilds the ~/.ssh tree from the manifest. |
|
services/recover
Package recover emits break-glass recovery material, ported from facade.recovery_script + _recovery_snippet.
|
Package recover emits break-glass recovery material, ported from facade.recovery_script + _recovery_snippet. |
|
services/rotator
Package rotator does zero-downtime, staged, single-old-archive key rotation, ported from services/rotator.py.
|
Package rotator does zero-downtime, staged, single-old-archive key rotation, ported from services/rotator.py. |
|
services/snapshots
Package snapshots is the local reversible-backup layer for ~/.ssh.
|
Package snapshots is the local reversible-backup layer for ~/.ssh. |
|
services/validate
Package validate checks that managed keypairs parse, that the public key matches the private key, and that perms are correct.
|
Package validate checks that managed keypairs parse, that the public key matches the private key, and that perms are correct. |
|
util/askpass
Package askpass delivers a passphrase to ssh-keygen without it ever appearing on a command line.
|
Package askpass delivers a passphrase to ssh-keygen without it ever appearing on a command line. |
|
util/desktop
Package desktop posts a best-effort desktop notification, ported from the platforms/*.notify methods: terminal-notifier/osascript on macOS, notify-send on Linux, a PowerShell balloon on Windows.
|
Package desktop posts a best-effort desktop notification, ported from the platforms/*.notify methods: terminal-notifier/osascript on macOS, notify-send on Linux, a PowerShell balloon on Windows. |
|
util/fs
Package fs has atomic-write and directory helpers, ported from the parts of src/ssh_manager/util/fs.py the renderer/config writer need.
|
Package fs has atomic-write and directory helpers, ported from the parts of src/ssh_manager/util/fs.py the renderer/config writer need. |
|
util/homeperms
Package homeperms is the single enumeration of the config-home secret paths and their canonical modes, shared by init (the seeder) and doctor (the fixer) so they can never disagree.
|
Package homeperms is the single enumeration of the config-home secret paths and their canonical modes, shared by init (the seeder) and doctor (the fixer) so they can never disagree. |
|
util/httpjson
Package httpjson is a minimal JSON-over-HTTP client for the REST provider adapters, ported from util/http.py.
|
Package httpjson is a minimal JSON-over-HTTP client for the REST provider adapters, ported from util/http.py. |
|
util/lock
Package lock is an advisory file lock so concurrent commands (e.g.
|
Package lock is an advisory file lock so concurrent commands (e.g. |
|
util/log
Package log writes the append-only audit trail, ported from util/log.audit.
|
Package log writes the append-only audit trail, ported from util/log.audit. |
|
util/netcheck
Package netcheck is the network reachability + VPN status probe, ported from util/net.py.
|
Package netcheck is the network reachability + VPN status probe, ported from util/net.py. |
|
util/paths
Package paths resolves the per-user home and the on-disk layout, ported from src/ssh_manager/util/paths.py + the platform config_dir logic.
|
Package paths resolves the per-user home and the on-disk layout, ported from src/ssh_manager/util/paths.py + the platform config_dir logic. |
|
util/perms
Package perms centralizes the file modes ssh-manager enforces and applies them in a platform-correct way - POSIX chmod on Unix, ACLs via icacls on Windows.
|
Package perms centralizes the file modes ssh-manager enforces and applies them in a platform-correct way - POSIX chmod on Unix, ACLs via icacls on Windows. |
|
util/scheduler
Package scheduler installs the daily job that runs `sshmgr audit --notify`, ported from the platforms/*.install_scheduler layer: a launchd agent on macOS, a systemd --user timer (else cron) on Linux, a schtasks task on Windows.
|
Package scheduler installs the daily job that runs `sshmgr audit --notify`, ported from the platforms/*.install_scheduler layer: a launchd agent on macOS, a systemd --user timer (else cron) on Linux, a schtasks task on Windows. |
|
util/secrets
Package secrets resolves provider tokens, ported from util/secrets.py.
|
Package secrets resolves provider tokens, ported from util/secrets.py. |
|
version
Package version carries the build version.
|
Package version carries the build version. |
Click to show internal directories.
Click to hide internal directories.