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.
One-line installer
Section titled “One-line installer”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 | bashBy default, the installer sets up both the CLI and the desktop app, creating an application menu entry and installing the desktop icon.
Installer options
Section titled “Installer options”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
Desktop runtime dependencies
Section titled “Desktop runtime dependencies”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-1sudo dnf install webkit2gtk4.1 libappindicator-gtk3Linux packages
Section titled “Linux packages”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.debsudo dnf install ./bayesian-ssh-2.10.0-1.x86_64.rpmSnap package
Section titled “Snap package”Install the bayesian-ssh snap from the Snap Store:
sudo snap install bayesian-sshPost-install configuration
Section titled “Post-install configuration”Because the package runs under strict confinement, grant read access to your SSH configuration and private keys:
sudo snap connect bayesian-ssh:ssh-keysOptionally enable the short bssh command alias:
sudo snap alias bayesian-ssh bsshConfinement limits
Section titled “Confinement limits”Snap confinement introduces specific operational constraints:
~/.sshis mounted read-only. The snap cannot updateknown_hostsor 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, andklist. - Host Kerberos credentials: To reuse ticket caches created on the host via
KRB5CCNAME=FILE:/tmp/krb5cc_*, connect the tickets plug: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.sudo snap connect bayesian-ssh:kerberos-tickets - The in-app updater is disabled in the snap build. The Snap Store delivers all updates.
Build from source
Section titled “Build from source”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.
-
Clone the repository:
git clone https://github.com/abdoufermat5/bayesian-ssh.gitcd bayesian-ssh -
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-sshsudo install -m 755 target/release/bayesian-ssh /usr/local/bin/bayesian-sshsudo ln -sf /usr/local/bin/bayesian-ssh /usr/local/bin/bsshShell completions
Section titled “Shell completions”Generate shell completion scripts for tab-completion using bssh completions <SHELL>:
bssh completions bash > ~/.local/share/bash-completion/completions/bsshbssh completions zsh > ~/.zfunc/_bsshbssh completions fish > ~/.config/fish/completions/bssh.fishSupported shells: bash, elvish, fish, powershell, and zsh. Restart your shell or reload its configuration file after writing the completion script.
Updating
Section titled “Updating”How you update depends on how you installed:
- Desktop in-app updates: The standalone
.AppImageandbayesian-ssh-desktop.deb/.rpmpackages 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/.rpmpackage, or pull the latest repository changes and re-runmake release && make install.
Verifying releases
Section titled “Verifying releases”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.
Uninstalling
Section titled “Uninstalling”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-guisudo rm -f /usr/share/applications/bayesian-ssh-desktop.desktopsudo rm -f /usr/share/icons/hicolor/128x128/apps/bayesian-ssh-desktop.pngIf you installed from source using the Makefile, run:
make uninstallIf you installed via a package manager:
sudo apt remove bayesian-sshsudo dnf remove bayesian-sshsudo snap remove bayesian-ssh