Releases: gedigi/noissh
Release list
v0.5.3
v0.5.2
noissh v0.5.2 — direct connections can offer to upgrade an outdated s…
v0.5.1
noissh v0.5.1 — publish Debian/Ubuntu .deb packages
v0.5.0
noissh v0.5.0 — UX-audit pass + feature pass (status overlay, detach …
v0.4.13
noissh v0.4.13
A small UX fix.
Fixed
- Running
noisshwith no host now prints a clear usage error. It used to
report a misleadingSSH bootstrap failed: no connect line from remote noisshd
— but it had never tried to bootstrap; there was simply no host to connect to.
It now printsnoissh: no host given, a one-line usage summary, and a pointer
to--help, and exits with status 2.
Still 100% safe Rust (#![forbid(unsafe_code)]), clippy-clean, 180 tests.
Install
curl -fsSL https://raw.githubusercontent.com/gedigi/noissh/main/install.sh | shVerify a download: shasum -a 256 -c noissh-<target>.tar.gz.sha256 and
gh attestation verify noissh-<target>.tar.gz --repo gedigi/noissh.
Pre-release software — not yet independently audited.
v0.4.12
noissh v0.4.12
Hardening for the remote-noisshd upgrade flow introduced in v0.4.11.
Fixed
- Accepting a remote upgrade keeps you connected. The upgrade offer no
longer reconnects through the still-busy pinned UDP port (which could push the
new server onto an ephemeral, firewalled port and time out). Accepting now
installs the new binary so it takes effect on your next connection, and the
current session continues on the existing one — no port collision, no timeout. - Failed remote installs are no longer silently masked. The auto-installer
downloads to a temp file underset -e(with a cleanup trap) instead of piping
curl … | sh, whose exit status reflected the shell, not the download. A 404
or network error during install/upgrade is now reported as a real failure, and
noissh falls back to the existing session with a clear message.
Still 100% safe Rust (#![forbid(unsafe_code)]), clippy-clean, 179 tests. Both
upgrade paths (decline, and accept incl. failed-download fallback) validated live.
Install
curl -fsSL https://raw.githubusercontent.com/gedigi/noissh/main/install.sh | shVerify a download: shasum -a 256 -c noissh-<target>.tar.gz.sha256 and
gh attestation verify noissh-<target>.tar.gz --repo gedigi/noissh.
Pre-release software — not yet independently audited.
v0.4.11
noissh v0.4.11
Keeps a remote noisshd current — on your terms.
Highlights
-
Optional upgrade of an outdated remote
noisshd. The one-shot server now
reports its version during the SSH bootstrap. If the remotenoisshdis older
than the connecting client, noissh asks —[y/N], defaulting to no —
whether to upgrade it before continuing:- Decline (or stdin isn't a terminal, or
--no-installis set): connect to
the existing version exactly as before. No nagging. - Accept: reinstall via the published installer (checksum-verified) and
reconnect to the upgraded server. If the install fails fast it falls back to
the still-live session; if reconnecting to the upgraded server fails it errors
clearly so a quick re-run connects cleanly.
The announced version is validated (leading digit, length-capped, version-ish
characters only) so a server banner can't inject control sequences into the
prompt. Servers older than v0.4.11 don't report a version, so they're never
prompted until they've been upgraded once. - Decline (or stdin isn't a terminal, or
Still 100% safe Rust (#![forbid(unsafe_code)]), clippy-clean, 179 tests.
Install
curl -fsSL https://raw.githubusercontent.com/gedigi/noissh/main/install.sh | shVerify a download: shasum -a 256 -c noissh-<target>.tar.gz.sha256 and
gh attestation verify noissh-<target>.tar.gz --repo gedigi/noissh.
Pre-release software — not yet independently audited.
v0.4.10
noissh v0.4.10
A small ergonomics release: every binary now has proper --help and --version.
Highlights
-h/--helpand-V/--versionon all three binaries.noissh,
noisshd, andnoissh-keygennow print a usage summary or their version and
exit cleanly, instead of treating--helpas an unknown option.
(noissh --helppreviously fell through to a confusing SSH-bootstrap attempt.)
noissh's help documents the ssh-style positional command and every flag;
noisshd's documents standalone vs one-shot mode.
Still 100% safe Rust (#![forbid(unsafe_code)]), clippy-clean, 177 tests.
Install
curl -fsSL https://raw.githubusercontent.com/gedigi/noissh/main/install.sh | shVerify a download: shasum -a 256 -c noissh-<target>.tar.gz.sha256 and
gh attestation verify noissh-<target>.tar.gz --repo gedigi/noissh.
Pre-release software — not yet independently audited.
v0.4.9
noissh v0.4.9
This release fixes the long-standing "I have to press Enter before the prompt
shows up" annoyance, and switches one-off commands to the familiar, ssh-style
positional form.
Highlights
- The prompt now appears immediately — no need to press Enter first. A
shell's line editor queries the terminal at startup (cursor-position report
ESC[6n, and device attributesESC[c/ESC[>c) and blocks until it gets a
reply before drawing the prompt. The server's authoritative emulator now
answers these queries and writes the reply back to the shell, so the first
prompt renders right away instead of waiting for a keystroke (whose bytes were
previously being consumed as the missing reply). A plain non-interactive shell
has no line editor and sends no such query, which is why automated output
tests never caught it; a new end-to-end test now reproduces the exact stall
over real sockets. - ssh-style remote command. Run a one-off command with
noissh user@host cmd args...instead of the old--execflag (removed).
Everything after the host is the remote command, verbatim — its own flags are
not parsed by noissh — and is joined and run by the remote shell, so quoting,
globs, pipes, and redirections behave as expected. Output stays byte-exact,
stderr is kept separate, and noissh exits with the command's status. Omit the
command for an interactive shell.
Still 100% safe Rust (#![forbid(unsafe_code)]), clippy-clean, 174 tests.
Install
curl -fsSL https://raw.githubusercontent.com/gedigi/noissh/main/install.sh | shVerify a download: shasum -a 256 -c noissh-<target>.tar.gz.sha256 and
gh attestation verify noissh-<target>.tar.gz --repo gedigi/noissh.
Pre-release software — not yet independently audited.
v0.4.8
noissh v0.4.8
Resilience and connection-UX fixes found by live-testing roaming.
Fixed
- Roaming survives network changes again. A failed UDP send (no route /
network down when switching Wi-Fi↔cellular or on sleep/resume) and a corrupt,
stale, or replayed datagram are dropped instead of being fatal — so the
session rides out the outage and resumes, roaming to the new address, instead
of disconnecting. - No more spurious "HOST KEY MISMATCH" in auto mode.
noissh hostonly tries
a direct connection when a standing server is already pinned for that
host:port; otherwise it goes straight to the SSH bootstrap, so a transient
one-shot server's ephemeral key on the conventional port is never mis-pinned
or mismatched.--directstill forces a trust-on-first-use direct connection. --execruns in your home directory, like the interactive shell.
Install
curl -fsSL https://raw.githubusercontent.com/gedigi/noissh/main/install.sh | shVerify a download: shasum -a 256 -c noissh-<target>.tar.gz.sha256 and
gh attestation verify noissh-<target>.tar.gz --repo gedigi/noissh.