bastion 0.61.0
ci / personal-data (push) Successful in 8s
ci / test (push) Successful in 7m17s
ci / fuzz (push) Successful in 6m33s

This commit is contained in:
Privatae
2026-11-02 06:20:42 +00:00
parent 4f8285ef18
commit 1176f7fd0b
47 changed files with 3574 additions and 294 deletions
+16 -3
View File
@@ -74,9 +74,22 @@ it was reinstalled by hand.
**The first install.** `curl … | sudo sh` and `irm … | iex` run a script from
our website before any bastion exists to check anything. The installer checks
the binary's digest against the manifest, but the installer and the manifest
come from the same place. To avoid trusting that one download, build from
source (see the README) or run `deploy/verify-release.sh` before installing.
the binary's digest against the manifest. `install.sh` also checks the
manifest's signature against the two pinned release keys, the ones a bastion
checks its updates with, where the machine's openssl can check Ed25519
(OpenSSL 3: most Linux, or `openssl@3` from Homebrew on a Mac); where it
cannot, it says so and keeps the digest check alone, and it refuses a
signature that does not verify. A script piped from our website is still our
website's, so what the signature adds is for a copy of `install.sh` you read
first, from this repository, and run as root (`sudo sh install.sh`) or for
your account alone (`sh install.sh --just-me`): that copy installs only a
release we signed, whatever the download host serves, though an older release
we signed passes as well as the newest. Run without sudo and without
`--just-me`, it installs for the whole machine through a root step that
fetches the installer from our website again and runs that one, not the copy
you read. `install.ps1` does not check the signature
yet. To avoid trusting any download, build from source (see the README) or
run `deploy/verify-release.sh` before installing.
**Bastion updates.** A bastion never replaces itself on its own. Your host has
to ask, and what it can ask for is limited to what we signed: the update goes