← All tools

lablup/bssh

Popularity 65 Updated Network & Systems

A high-performance parallel SSH command execution tool for cluster management

githubauto-collected

Installation

A directly usable install command is not verified yet. Check the project documentation or releases.

bssh - Broadcast SSH

) [](https://deps.rs/repo/github/lablup/bssh)

A high-performance SSH client with SSH-compatible syntax for both single-host and parallel cluster operations, built with Rust and russh.

Developed and maintained as part of the Backend.AI project.

Recent Updates

  • v2.3.1 (2026/07/29): Restore keyboard protocols leaked by disconnected PTY applications, preserve an outer TUI's keyboard state, raise the MSRV and Debian/Launchpad toolchain to Rust 1.96, and make Homebrew formula updates safer (#231, #232, #233, #235, #237).
  • v2.3.0 (2026/07/18): Roughly double bssh-server SFTP write throughput, fix the paramiko prefetch deadlock (with TCPNODELAY), make sftp.root/scp.root chroot usable, make server SSH compression configurable, and drop the vendored bssh-russh fork for upstream russh 0.62.1 (#187, #212, #214, #215, #227).
  • v2.2.3 (2026/05/25): Sync both internal russh forks to upstream stable and patch RUSTSEC-2026-0009 (a time stack-exhaustion DoS), raising the minimum supported Rust to 1.88 (#207, #208).
  • v2.2.2 (2026/05/25): Keep idle SSH sessions alive by lowering the default --server-alive-interval to 30s and leaving the client inactivity timeout disabled (#206).
  • v2.2.1 (2026/05/19): Dependency upgrade pass and russh fork sync picking up both halves of CVE-2026-46673, plus a bssh-russh dev-deps fix so its inline tests compile (#203, #204, #205).
  • v2.2.0 (2026/05/18): Collect --password once and share it across parallel tasks, add BSSHPASSWORD, resolve all cargo-audit findings, and drop five redundant dependencies (#198, #199, #200, #201).
  • v2.1.4 (2026/05/10): Stream SFTP transfers in 255 KiB chunks (~160x lower memory, ~11x faster 1 GiB upload) and pipeline up to 64 concurrent requests (#195, #196, #197).
  • v2.1.3 (2026/04/30): Fix SCP/SFTP path doubling and chroot config, vendor russh-sftp with a serdebytes perf fix (+29% upload), and forward-port unreleased upstream russh fixes (#186).

See CHANGELOG.md for the complete version history.

Features

  • SSH Compatibility: Drop-in replacement for SSH with compatible command-line syntax
  • Port Forwarding: Full support for local (-L), remote (-R), and dynamic (-D) SSH port forwarding
  • Jump Host Support: Connect through bastion hosts using OpenSSH ProxyJump syntax (-J)
  • Parallel Execution: Execute commands across multiple nodes simultaneously
  • Hostlist Expressions: pdsh-style range expansion (node[1-5], rack[1-2]-node[1-3]) for compact host specification
  • Fail-Fast Mode: Stop immediately on first failure with -k flag (pdsh compatible)
  • Interactive Terminal UI (TUI): Real-time monitoring with 4 view modes (Summary/Detail/Split/Diff) for multi-node operations
  • Cluster Management: Define and manage node clusters via configuration files
  • Progress Tracking: Real-time progress indicators with smart detection (percentages, fractions, apt/dpkg)
  • Flexible Authentication: Support for SSH keys, SSH agent, password authentication, and encrypted key passphrases
  • Host Key Verification: Secure host key checking with knownhosts support
  • Cross-Platform: Works on Linux and macOS (see Platform Support for Windows status)
  • Output Management: Multiple output modes (TUI, stream, file, normal) with auto-detection
  • Interactive Mode: Interactive shell sessions with single-node or multiplexed multi-node support
  • SSH Config Caching: High-performance caching of SSH configurations with TTL and file modification detection
  • Configurable Timeouts: Set both connection timeout (--connect-timeout) and command execution timeout (--timeout) with support for unlimited execution
  • SSH Keepalive: Configurable keepalive settings (--server-alive-interval, --server-alive-count-max) to prevent idle connection timeouts

Platform Support

  • Linux and macOS: Fully supported, including SSH agent authentication (-A), PTY-based interactive sessions, and every CLI feature documented here.
  • Windows (native): Not currently supported as a client. The bssh crate does not build for a Windows target today because of unconditional Unix-only dependencies (nix, signal-hook, libc) and un-gated PTY/agent code; there is no Windows CI job or release artifact. Use WSL2 to run bssh on Windows in the meantime. See #213 for the current status and the known blockers to native Windows client support.

Installation

Install via Homebrew (macOS/Linux)

The easiest way to install bssh on macOS and Linux is through Homebrew:

brew tap lablup/tap
brew install bssh