Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

# CLI (bayesian-ssh + bssh) and the desktop app, with its menu entry
curl -fsSL https://raw.githubusercontent.com/abdoufermat5/bayesian-ssh/main/install.sh | bash

# CLI only (servers, headless machines)
curl -fsSL https://raw.githubusercontent.com/abdoufermat5/bayesian-ssh/main/install.sh | bash -s -- --no-gui

# Choose interactively (pre-built or source build, with or without the desktop app)
curl -fsSL https://raw.githubusercontent.com/abdoufermat5/bayesian-ssh/main/install.sh | bash -s -- --interactive

Binaries go to /usr/local/bin and every download is checked against the release’s SHA256SUMS. The desktop app needs WebKitGTK 4.1 (libwebkit2gtk-4.1-0 on Debian/Ubuntu, webkit2gtk4.1 on Fedora); the installer warns when it is missing.

Option 2: Manual Build

Prerequisites

rustup install stable

Build and Install

# Clone and build
git clone https://github.com/abdoufermat5/bayesian-ssh.git
cd bayesian-ssh

# Build and install using Makefile
make release
make install

# Or build manually
cargo build --release
sudo cp target/release/bayesian-ssh /usr/local/bin/

Option 3: Snap Store

sudo snap install bayesian-ssh
sudo snap connect bayesian-ssh:ssh-keys   # read-only ~/.ssh and /etc/ssh
sudo snap alias bayesian-ssh bssh         # optional short alias

The snap ships both the CLI (bayesian-ssh, or bssh after the alias) and the desktop app (bayesian-ssh.gui). Strict confinement limits it — ~/.ssh is read-only (known_hosts is not updated, key generate cannot write there), its config/database live under ~/snap/bayesian-ssh/current/.config/bayesian-ssh, it uses its own ssh/kinit/klist, and Kerberos (optional) needs sudo snap connect bayesian-ssh:kerberos-tickets to reuse host tickets. See Distribution for the full list and how to publish.

Verify Installation

bayesian-ssh --version

Verify a release

Release assets are signed. With cosign and the gh CLI installed, check a downloaded release like this:

cosign verify-blob --bundle SHA256SUMS.sigstore.json \
  --certificate-identity-regexp '^https://github\.com/abdoufermat5/bayesian-ssh/\.github/workflows/release\.yml@refs/(tags/v.+|heads/main)$' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com SHA256SUMS

sha256sum --ignore-missing -c SHA256SUMS

gh attestation verify bayesian-ssh-linux-x86_64.tar.gz --repo abdoufermat5/bayesian-ssh

install.sh performs the cosign check automatically when cosign is on PATH, and always verifies SHA256SUMS with sha256sum -c. See Distribution for details.

In-app updates

The desktop .AppImage and the bayesian-ssh-desktop .deb/.rpm from the GitHub release can update themselves from Settings → Updates; installing closes open sessions and restarts the app. The snap, the install.sh binaries, the unified bayesian-ssh packages and source builds are updated the way they were installed.

Enable Tab Completion

Generate and source a completion script for your shell:

# Bash
bayesian-ssh completions bash > bayesian-ssh-completion.bash
source bayesian-ssh-completion.bash

# Zsh
bayesian-ssh completions zsh > _bayesian-ssh
# Move to your zsh completions directory

# Fish
bayesian-ssh completions fish > bayesian-ssh.fish
# Move to your fish completions directory

To make completions permanent, add the source line to your shell’s rc file (e.g. ~/.bashrc).