Skip to content

Releases: gedigi/noissh

v0.5.3

Choose a tag to compare

@github-actions github-actions released this 28 Jun 00:14
noissh v0.5.3 — server version signalled in the Noise handshake

v0.5.2

Choose a tag to compare

@github-actions github-actions released this 27 Jun 23:29
noissh v0.5.2 — direct connections can offer to upgrade an outdated s…

v0.5.1

Choose a tag to compare

@github-actions github-actions released this 27 Jun 23:08
noissh v0.5.1 — publish Debian/Ubuntu .deb packages

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 27 Jun 16:17
noissh v0.5.0 — UX-audit pass + feature pass (status overlay, detach …

v0.4.13

Choose a tag to compare

@github-actions github-actions released this 25 Jun 07:16

noissh v0.4.13

A small UX fix.

Fixed

  • Running noissh with no host now prints a clear usage error. It used to
    report a misleading SSH 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 prints noissh: 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 | sh

Verify 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

Choose a tag to compare

@github-actions github-actions released this 23 Jun 10:46

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 under set -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 | sh

Verify 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

Choose a tag to compare

@github-actions github-actions released this 23 Jun 10:33

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 remote noisshd is 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-install is 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.

Still 100% safe Rust (#![forbid(unsafe_code)]), clippy-clean, 179 tests.

Install

curl -fsSL https://raw.githubusercontent.com/gedigi/noissh/main/install.sh | sh

Verify 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

Choose a tag to compare

@github-actions github-actions released this 23 Jun 08:54

noissh v0.4.10

A small ergonomics release: every binary now has proper --help and --version.

Highlights

  • -h/--help and -V/--version on all three binaries. noissh,
    noisshd, and noissh-keygen now print a usage summary or their version and
    exit cleanly, instead of treating --help as an unknown option.
    (noissh --help previously 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 | sh

Verify 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

Choose a tag to compare

@github-actions github-actions released this 23 Jun 08:44

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 attributes ESC[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 --exec flag (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 | sh

Verify 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

Choose a tag to compare

@github-actions github-actions released this 19 Jun 17:17

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 host only 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. --direct still forces a trust-on-first-use direct connection.
  • --exec runs in your home directory, like the interactive shell.

Install

curl -fsSL https://raw.githubusercontent.com/gedigi/noissh/main/install.sh | sh

Verify a download: shasum -a 256 -c noissh-<target>.tar.gz.sha256 and
gh attestation verify noissh-<target>.tar.gz --repo gedigi/noissh.