Skip to content

Installation

Bayesian SSH provides pre-built Linux packages and binaries for x86_64 (amd64) and aarch64 (arm64), an automated installer script, a Snap package, and source builds.

The installer script downloads the latest pre-built release for your architecture, verifies its checksum, and installs bayesian-ssh and the bssh alias into /usr/local/bin.

curl -fsSL https://bssh.abdoufermat.dev/install.sh | bash

By default, the installer sets up both the CLI and the desktop app, creating an application menu entry and installing the desktop icon.

Pass arguments to the script using bash -s -- <flags>:

  • CLI only (servers and headless systems):
    curl -fsSL https://bssh.abdoufermat.dev/install.sh | bash -s -- --no-gui
  • Interactive mode (prompts to choose between pre-built packages and source builds, with or without the desktop app):
    curl -fsSL https://bssh.abdoufermat.dev/install.sh | bash -s -- --interactive

The desktop app requires WebKitGTK 4.1. If you run the GUI on a minimal desktop installation, install the required runtime libraries:

sudo apt install libwebkit2gtk-4.1-0 libayatana-appindicator3-1

Unified .deb and .rpm packages containing both the CLI and the desktop app are published with each GitHub release for x86_64 and aarch64.

sudo apt install ./bayesian-ssh_2.10.0_amd64.deb

Install the bayesian-ssh snap from the Snap Store:

sudo snap install bayesian-ssh

Because the package runs under strict confinement, grant read access to your SSH configuration and private keys:

sudo snap connect bayesian-ssh:ssh-keys

Optionally enable the short bssh command alias:

sudo snap alias bayesian-ssh bssh

Snap confinement introduces specific operational constraints:

  • ~/.ssh is mounted read-only. The snap cannot update known_hosts or write new keys into ~/.ssh.
  • Configuration and database files live under ~/snap/bayesian-ssh/current/.config/bayesian-ssh/ and are isolated from native installations.
  • The snap bundles internal copies of ssh, kinit, and klist.
  • Host Kerberos credentials: To reuse ticket caches created on the host via KRB5CCNAME=FILE:/tmp/krb5cc_*, connect the tickets plug:
    sudo snap connect bayesian-ssh:kerberos-tickets
    KCM and KEYRING caches (standard on modern Fedora, RHEL, and SSSD deployments) are not accessible inside strict confinement. Use a native package or installer script on systems using those caches.
  • The in-app updater is disabled in the snap build. The Snap Store delivers all updates.

Building from source requires Git and a stable Rust toolchain (cargo). Building the desktop app also requires Make, Node.js (with npm), and development headers for GTK 3 and WebKitGTK 4.1.

  1. Clone the repository:

    git clone https://github.com/abdoufermat5/bayesian-ssh.git
    cd bayesian-ssh
  2. Build and install both the CLI and desktop app:

    make release && make install

To build only the CLI binary without GUI dependencies:

cargo build --release --locked --package bayesian-ssh
sudo install -m 755 target/release/bayesian-ssh /usr/local/bin/bayesian-ssh
sudo ln -sf /usr/local/bin/bayesian-ssh /usr/local/bin/bssh

Generate shell completion scripts for tab-completion using bssh completions <SHELL>:

bssh completions bash > ~/.local/share/bash-completion/completions/bssh

Supported shells: bash, elvish, fish, powershell, and zsh. Restart your shell or reload its configuration file after writing the completion script.

How you update depends on how you installed:

  • Desktop in-app updates: The standalone .AppImage and bayesian-ssh-desktop .deb/.rpm packages check for updates automatically under Settings → Updates and install them in place. Open sessions close when applying an update.
  • Snap: Updates are delivered automatically by snapd, or manually by running sudo snap refresh bayesian-ssh.
  • Installer script and packages: Re-run the one-line installer, install the new .deb/.rpm package, or pull the latest repository changes and re-run make release && make install.

Release artifacts and checksums are cryptographically signed using keyless Sigstore workflows. GitHub produces verifiable build provenance attestations for every release asset.

For instructions on verifying SHA256SUMS with cosign and verifying build provenance with gh attestation verify, see the security reference.

The install.sh script does not include an uninstall command. To remove binaries and assets placed by the installer:

sudo rm -f /usr/local/bin/bayesian-ssh /usr/local/bin/bssh /usr/local/bin/bayesian-ssh-desktop /usr/local/bin/bayesian-ssh-gui
sudo rm -f /usr/share/applications/bayesian-ssh-desktop.desktop
sudo rm -f /usr/share/icons/hicolor/128x128/apps/bayesian-ssh-desktop.png

If you installed from source using the Makefile, run:

make uninstall

If you installed via a package manager:

sudo apt remove bayesian-ssh