Skip to content

Releases: ms-sk/sshocked

sshocked 2.2.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 18:35
ccb87ae

sshocked 2.2.0 adds monitoring and fleet operations to the terminal application, implementing fifteen issues from PR #78: #58–#63, #67–#70 and #72–#76.

Highlights

  • Monitoring: configure server health/load/updates, processes, services, Linux log files and Docker/Compose checks. Inspect cached snapshots, run a check or start a watch with explicit intervals, output limits, quality states and delayed alarm rules. Stale or missing data cannot claim complete OK; acknowledgement does not change the measured state.
  • Fleet views and batches: save AND/OR/NOT tag expressions and preview current membership. Run confirmed command, macro and transfer plans with bounded concurrency, independent target outcomes, JSON/CSV reports and explicit failed-target retries. Raw command output is displayed separately and excluded from reports.
  • Docker management: scan password/DPAPI/secret-authenticated SSH hosts, select multiple containers, start/stop/restart/pause/unpause or confirm removal. Containers can join groups and tags alongside servers. Privileged access uses protected stdin; scans and captured commands use bounded noninteractive SSH execution.
  • SSH forwarding: create local, remote and dynamic forwarding profiles with loopback defaults, startup/readiness checks and owned process/credential lifetimes. Start/stop them in the TUI or CLI.
  • Macro editor: create, edit, duplicate and reorder commands without recording or connecting. Independent drafts support save/discard and conflict validation. The Ubuntu/Debian update template remains editable and runs only after an explicit execution action.
  • Backup and diagnostics: export portable redacted configuration, inspect restore changes/conflicts and apply merge/replace atomically with an exact private local recovery snapshot. Preview and manually save redacted connection diagnostics; nothing is uploaded automatically.
  • Navigation: Ctrl+P searches current actions, hosts, groups and tags; F1 shows assigned shortcuts. Dark is now the only palette; legacy Light settings load with Dark.

Monitoring and CLI

ssk monitor status --server web --output json
ssk monitor run --group production
ssk monitor enable
ssk monitor watch --tag production --kind service
ssk views create "Production web" --expression "prod AND web AND NOT maintenance"
ssk batch command "uptime" --view "Production web"
ssk batch command "uptime" --view "Production web" --execute --output json
ssk forward create database --server prod-db --kind local --listen-port 15432 --target 127.0.0.1 --target-port 5432
ssk forward start database

Define monitors in Monitoring or use ssk monitor create --file definition.json. Continuous monitoring is disabled by default, runs only during an explicitly started watch, and stops with the application. Monitoring definitions and runtime snapshots/history are stored separately. Probes use strict trusted host keys, configured credential/tunnel leases and bounded output; they do not run connection hooks or create recent sessions/recordings. Monitoring never installs updates, reboots a host or repairs a service/container automatically.

Linux/Ubuntu server probes use CPU deltas, available memory, filesystem capacity and uptime. Optional SMART depends on installed tools, hardware support and rights. Ubuntu/Debian update counts use the existing package index and expose its age; no index refresh or upgrade runs. Windows over OpenSSH uses explicit noninteractive PowerShell/CIM and capability-based Storage/Windows Update Agent checks. Missing capabilities remain unavailable rather than becoming zero/healthy values; a universal per-service Windows restart-needed value cannot be inferred.

Log monitoring currently supports regular UTF-8/LF Linux files with Bash/GNU utilities, literal/regex patterns and observation-time count windows. Rotation, restart, backlog and read failures retain conservative coverage. Historical log timestamps, journald, multiline and Windows log/EventLog providers remain future extensions. Container monitoring supports Docker Engine/Compose on Linux, including rootless direct access; Podman, Kubernetes, LXC and Windows Docker Engine providers remain future extensions.

Compatibility and platform notes

Existing configuration and credential references remain readable. GUI work in #77 is excluded; launching ssk without arguments still opens the terminal application. The removed Light setting is migrated to the dark palette.

Portable backups exclude credential values and local password ciphertext; password files and private keys are not copied. Local passwords must be re-saved for another account or endpoint. Exact recovery snapshots are private, tied to the current account/computer and handled separately from portable imports. Diagnostic paths and command text require explicit inclusion and compatible audit privacy settings.

Background probes, batches and managed forwards do not open authentication or host-key prompts. Trust/configure hosts through the normal connection flow first. Native Bastion AAD routes without a checked SSH exit contract remain unsupported for these operations; use supported key/password tunnels. Macro sessions still require POSIX sh, and interactive programs should use Connect. The package-upgrade template requires suitable noninteractive sudo permissions and does not guarantee that every package script is noninteractive.

Native AOT downloads remain available for Windows x64, Linux x64/ARM64 and macOS x64, with Debian packages for both Linux architectures. OpenSSH Client is required. Windows ARM64 and macOS ARM64 archives are not supplied by this workflow.

Installers reject unavailable architectures before downloading. The Windows installer stops on installation errors and uses an isolated temporary directory with guarded cleanup, so a failed copy cannot report a successful installation.

Validation

The merged implementation passed 583 tests on Linux, including real log descriptor/rotation/read-failure tests. Windows passed 581 tests with two platform-dependent symbolic-link tests skipped. Native AOT publishing passed for all four existing release targets, with native CLI checks on Windows x64, Linux x64 and macOS x64; build output reported zero warnings. Tests cover bounded child output, cancellation/cleanup, forwarding lifecycle, private recovery, alarms and changed monitor endpoints. Session lifecycle detects shell exit even when a background child holds output pipes open.

Live Ubuntu/Windows SSH, SMART hardware, Windows Update Agent and Docker daemon smoke tests require configured infrastructure and were not performed. The automated suite performs no remote upgrades, restarts or container mutations.

See the implementation map, monitoring guide, fleet guide, macro guide, backup guide and forwarding guide.

Full changelog: v2.1.1...v2.2.0

sshocked 2.1.1

Choose a tag to compare

@github-actions github-actions released this 13 Oct 15:31
127d30b

sshocked 2.1.1 fixes Windows server-table rendering from #65 and adds local host resolution from #66.

Highlights

  • Stable Windows tables: layout follows the visible console window, avoiding broken rows when the scroll buffer is wider. Maximizing, restoring or resizing redraws the complete table view while preserving the selected menu entry.
  • Aligned groups: corresponding columns use identical widths across the server overview, including Uncategorized. Long hostnames, tags and container names wrap within those shared columns in normal and compact layouts.
  • Host resolution: a new column beside Host shows locally resolved IPv4/IPv6 addresses or concise DNS errors. Literal IP addresses appear immediately; multiple addresses use separate lines.

Resolution and display settings

Hostname lookups run in the background, with at most four lookups at a time and a two-second timeout. Results and errors are cached for five minutes. Completed lookups update open table menus automatically without changing the selection; cached results remain visible during a refresh.

The Host resolution column is enabled by default. Hiding it under Settings → Display settings stops scheduling lookups. DNS resolution is independent of the TCP reachability setting: resolving a host does not confirm that its SSH port is reachable. Jump-host and Bastion destinations are resolved locally, so the displayed result does not identify the address selected by SSH or resolved by a remote jump host.

Windows startup initializes UTF-8 before rendering, and table layout reserves a small right-edge margin to avoid console wrapping.

Compatibility

Existing configuration, saved credentials, SSH keys and connection history remain compatible. The new column uses its default setting when reading an existing configuration. No server-side changes are required.

Native AOT downloads remain available for Windows x64, Linux x64/ARM64 and macOS x64, with Debian packages for both Linux architectures. OpenSSH Client is still required for SSH connections.

Validation

Windows validation passed 304 tests, with two symbolic-link tests skipped because the required platform privilege was unavailable. Another 95 checks exercised an actual Windows console, including maximized/restored layouts, shared column boundaries, background DNS completion and preserved menu selection. Windows Native AOT publishing and the Unicode askpass helper were also checked.

See the display-settings guide for status indicators and host-resolution behavior.

Full changelog: v2.1.0...v2.1.1

sshocked 2.1.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 09:19
9bbc13d

sshocked 2.1.0 implements the fifteen user-feedback issues #42–#56 from PR #57, improving everyday SSH navigation, command execution and local credential handling.

Highlights

  • Persistent command sessions and reusable macros: stream remote stdout/stderr while commands run, preserve working directory and environment in one POSIX shell, explicitly record commands, and replay saved sequences on servers, groups or tag matches. A failed command stops its target's sequence while other targets still report independent results.
  • Tags: assign case-insensitive tags alongside groups and operate on the live set of matching hosts for connections, commands, macros and file transfers.
  • Windows local passwords: save, update and clear per-server passwords with current-user DPAPI encryption, restricted credential-file access and endpoint binding. Passwords stay out of configuration JSON and SSH arguments; changing an endpoint requires saving its password again.
  • Activity and recording: one settings module and the ssk activity CLI cover structured events, timed session playback, export and retention.

Navigation and usability

  • Light and Dark themes now have distinct backgrounds, semantic colors and selection contrast, with changes applied immediately.
  • Browse, Favorites and Recent connections share the complete server action menu. Back restores the originating menu and breadcrumbs.
  • Path prompts accept quoted Windows paths and support caret movement, Home/End, Delete/Backspace, Escape cancellation and Windows console mouse positioning.
  • Dynamic menu rows receive unique available shortcuts while reserving explicit action keys.
  • Group management uses consistent menus; an empty name cancels creation, and confirmed group deletion retains its servers, saved containers and history.
  • Group connections open parallel terminal tabs, including configurations previously set to Sequential.
  • TCP reachability probes are enabled by default and distinguish Checking, Online, Offline, Unknown, expired results and routed endpoints. Reachability describes the TCP port, not SSH authentication.
  • UTF-8 handling preserves Unicode passwords and captured remote output on Windows.

Compatibility and platform notes

Existing configuration, event history and recordings remain readable. The history, audit and sessions CLI commands continue as compatibility aliases. Existing Sequential settings remain readable but group connections now run in parallel.

Saved local passwords require Windows DPAPI and are tied to the Windows user. Linux/macOS continue to use the existing authentication methods and configured secret providers. Remote macro sessions require sh; interactive programs should use Connect, and native Azure Bastion AAD command sessions require an SSH key/password tunnel.

Output recording remains opt-in. Macro commands are stored locally and recorded remote output can contain sensitive data; keep secrets in remote credential references.

Native AOT downloads are supplied for Windows x64, Linux x64/ARM64 and macOS x64, with Debian packages for both Linux architectures. OpenSSH Client is still required. The attached installers download the matching latest-release archive; Windows ARM64 and macOS ARM64 archives are not provided by this release workflow.

Validation

The feature integration passed 253 tests on Linux and 251 tests on Windows with the two platform-dependent symbolic-link tests skipped. Windows Native AOT publishing and Unicode askpass-helper checks succeeded. Live SSH/SCP/Azure targets were not exercised.

See the user-feedback guide, macro guide and activity guide for usage and constraints.

Full changelog: v2.0.0...v2.1.0

v2.0.0

Choose a tag to compare

@ms-sk ms-sk released this 12 Oct 10:36
4a62182

What's Changed

  • Add Azure access, SCP, history and session tools with SSH config sync by @max2605 in #40
  • Fix Ubuntu CI failures in prompt and SSH credential tests by @max2605 in #41

New Contributors

Full Changelog: v1.4.4...v2.0.0

v1.4.4

Choose a tag to compare

@ms-sk ms-sk released this 07 Oct 15:23

Full Changelog: v1.4.3...v1.4.4

v1.4.3

Choose a tag to compare

@github-actions github-actions released this 29 Sep 17:01

Full Changelog: v1.4.2...v1.4.3

v1.4.2

Choose a tag to compare

@github-actions github-actions released this 28 Sep 20:38

Full Changelog: v1.3.0...v1.4.2

v1.4.1

Choose a tag to compare

@github-actions github-actions released this 27 Sep 13:06

Full Changelog: v1.3.0...v1.4.1

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 11:46
e8cc9c8

What's Changed

New Contributors

  • @ms-sk made their first contribution in #22

Full Changelog: v1.0.0...v1.3.0

v1.0.0

Choose a tag to compare

@ms-sk ms-sk released this 26 Sep 19:09

sshocked v1.0.0 — Initial Release

Shell into servers and containers with lightning speed.

After months of development, sshocked reaches its first stable release. This is a complete rewrite of server management for the terminal — a keyboard-driven TUI for organizing, discovering, and connecting to SSH hosts.

Installation

# Linux / macOS
curl -fsSL https://github.com/ms-sk/sshocked/releases/latest/download/install.sh | sudo sh

# Windows (PowerShell as Administrator)
irm https://github.com/ms-sk/sshocked/releases/latest/download/install.ps1 | iex

# Debian / Ubuntu
sudo apt install ./sshocked-linux-x64.deb

Or download the archive for your platform from the assets below.

Features

Server Management

  • Add, edit, and delete SSH hosts with aliases, addresses, ports, and user
  • Organize servers into groups by project, environment, or any category
  • Connect to all servers in a group at once
  • Import hosts from your existing ~/.ssh/config

Authentication Methods

  • SSH key authentication with optional identity file
  • Password-based authentication
  • SSH agent forwarding
  • Custom SSH options passthrough

Interactive Terminal UI

  • Keyboard-driven navigation with fuzzy search
  • Server overview table grouped by category
  • Sub-menu navigation with consistent back action
  • Direct connection via CLI arguments: ssk <alias>, ssk <hostname>, ssk <group>

Non-Interactive Mode

  • ssk --list / ssk -l — list all configured servers and groups (pipe-friendly)
  • ssk --help / ssk -h — usage guide
  • ssk --version / ssk -v — version information

Technical Highlights

  • Native AOT — compiled to native binary for instant startup and zero runtime dependencies
  • Cross-platform — Linux (x64, arm64), Windows (x64), macOS (x64)
  • File-based logging — automatic log rotation at 5 MB, up to 3 backups
  • DI-first architecture — built with Microsoft.Extensions.DependencyInjection

What's Included

Core Features

  • #1 — Setup DI Container & Application Bootstrapper
  • #2 — Data Model & JSON Repository
  • #3 — First-Start Wizard & SSH Config Importer
  • #4 — Main Menu & Server Group Management
  • #6 — Single Server Connection Execution
  • #8 — Lightweight File & Diagnostics Logging
  • #10 — Interactive Server CRUD Management
  • #12 — Server Authentication Methods Support
  • #13 — Sub-Menu Navigation & Universal Back Action

Quality of Life

  • #5 — Fuzzy Search for Servers & Groups
  • #14 — Fix Issues in Pipeline
  • #15 — Create Project README with Status Badges & Release Link
  • #16 — Code Refactoring & Cleanup Standards

Infrastructure

  • #11 — GitHub Actions CI/CD & Automated Release Pipeline
  • #18 — CLI Argument Parsing & Direct SSH Execution
  • #17 — Choose a License (GPLv3)
  • #19 — Installation Comfort (one-line scripts, .deb packages, Windows support)

License

GNU General Public License v3.0 — see LICENSE.