Skip to content

Commit 41a0c61

Browse files
committed
chore: Prepare v2.0.0 release
Consolidates the v2.0.0-beta.1 pre-release entries into a single v2.0.0 stable entry across README, CHANGELOG, debian/changelog, and manpages. Adds the post-beta fixes and dependency updates (SSH idle disconnect fix, cluster flag help fix, bssh-russh 0.60 sync, rand 0.10 stable, cargo dependency refresh).
1 parent 508aa3f commit 41a0c61

8 files changed

Lines changed: 37 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ All notable changes to bssh will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8-
## [2.0.0-beta.1] - 2026-01-29
8+
## [2.0.0] - 2026-04-13
99

1010
### Added
1111
- **bssh-server SSH Server** - A lightweight SSH server designed for container environments
@@ -49,12 +49,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4949

5050
### Changed
5151
- **Documentation**: Added comprehensive server configuration manual and manpages
52-
- **CI/CD**: Updated release workflow for dual-package distribution
52+
- **CI/CD**: Updated release workflow for dual-package distribution; Teams release notification added
53+
- **Dependencies**: Synced bssh-russh fork with upstream `warp-tech/russh` v0.60.0, which brings the RustCrypto chain migration — rand 0.9 → **0.10 stable**, signature 3.0.0-rc.10, ed25519-dalek 3.0.0-pre.6, elliptic-curve 0.14.0-rc.28, p256/p384/p521 0.14.0-rc.7, ecdsa 0.17.0-rc.16, curve25519-dalek 5.0.0-pre.6, der 0.8, sec1 0.8, pkcs8 0.11.0-rc.11, pkcs5 0.8.0-rc.13, spki 0.8.0-rc.4, ml-kem 0.3.0-rc.1, ssh-key 0.6.18, tokio 1.51.1, socket2 0.6.3, signal-hook 0.4.4, fastrand 2.4.1
54+
- **Cluster flag help**: Help examples and man pages now correctly show `-C` (uppercase) for the cluster flag; running the previous `-c` examples failed with clap's "unexpected argument" error
55+
56+
### Fixed
57+
- **SSH idle disconnects**: Interactive sessions could disconnect inconsistently after idle time — sometimes within minutes, sometimes ~10 minutes
58+
- `russh::Config::inactivity_timeout` (10-minute client-side ceiling) is now explicitly set to `None` when keepalive is enabled so the keepalive mechanism alone decides peer liveness
59+
- TCP-level `SO_KEEPALIVE` (via `socket2::TcpKeepalive`) is now applied to every SSH socket so the kernel can detect broken paths even when SSH keepalive replies are dropped by middleboxes
60+
- The exec-mode code path previously dropped the user-configured `SshConnectionConfig` at the `ConnectionConfig` boundary; it now flows through `connect_direct` / `connect_via_jump_hosts` / the jump chain, so `server_alive_interval` actually takes effect in non-interactive runs
61+
- **bssh-server**: Use consistent source package name in Debian `control` file so dual-package builds resolve correctly
62+
- **bssh-server**: Use type inference for `ioctl` to support both glibc and musl builds
5363

5464
### Technical Details
5565
- Shared module structure for client/server code reuse
5666
- russh-based SSH server handler implementation
5767
- Modular audit exporter architecture with trait-based design
68+
- `SshConnectionConfig::to_russh_config()` now overrides `inactivity_timeout` based on keepalive state; `to_tcp_keepalive()` derives a kernel TCP keepalive config from the same settings
69+
- `Client::connect_with_config` rewritten around `russh::client::connect_stream`, building the `TcpStream` manually so SO_KEEPALIVE can be applied before the SSH handshake
70+
- Dropped the `ssh_key::rand_core::OsRng` workaround in key-generation sites; now pass `&mut rand::rng()` (rand 0.10's thread RNG implements the new `rand_core 0.10` `CryptoRng` trait directly)
5871

5972
## [1.7.0] - 2026-01-09
6073

@@ -721,7 +734,7 @@ None
721734
- russh library for native SSH implementation
722735
- Cross-platform support (Linux and macOS)
723736

724-
[2.0.0-beta.1]: https://github.com/lablup/bssh/compare/v1.7.0...v2.0.0-beta.1
737+
[2.0.0]: https://github.com/lablup/bssh/compare/v1.7.0...v2.0.0
725738
[1.7.0]: https://github.com/lablup/bssh/compare/v1.6.0...v1.7.0
726739
[1.6.0]: https://github.com/lablup/bssh/compare/v1.5.1...v1.6.0
727740
[1.5.1]: https://github.com/lablup/bssh/compare/v1.5.0...v1.5.1

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ members = [
66

77
[package]
88
name = "bssh"
9-
version = "2.0.0-beta.1"
9+
version = "2.0.0"
1010
authors = ["Jeongkyu Shin <inureyes@gmail.com>"]
1111
description = "Parallel SSH command execution tool for cluster management"
1212
license = "Apache-2.0"

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1445,7 +1445,7 @@ See the [LICENSE](./LICENSE) file for details.
14451445
## Changelog
14461446

14471447
### Recent Updates
1448-
- **v2.0.0-beta.1 (2026/01/29):** Add bssh-server SSH server for containers with SFTP/SCP support, audit logging (file/OpenTelemetry/Logstash), IP access control, rate limiting, session management, file transfer filtering, and bssh-keygen tool; separate packaging for bssh and bssh-server
1448+
- **v2.0.0 (2026/04/13):** Major release — bssh-server SSH server for containers with SFTP/SCP, PTY/shell sessions, password + public-key auth; audit logging (file/OpenTelemetry/Logstash); IP access control, rate limiting, session management, file transfer filtering; bssh-keygen tool; SSH idle-disconnect fix via proper keepalive wiring (inactivity_timeout override + TCP SO_KEEPALIVE); bssh-russh fork synced with upstream russh 0.60.0 (rand 0.10 stable, updated RustCrypto chain); separate packaging for bssh and bssh-server
14491449
- **v1.7.0 (2026/01/09):** Add SSH keepalive support with --server-alive-interval and --server-alive-count-max options to prevent idle connection timeouts (#122), update dependencies (russh 0.56, ratatui 0.30, whoami 2.0)
14501450
- **v1.6.0 (2025/12/19):** Add jump_host field support in config.yaml (issue #115), fix SSH config ProxyJump directive application, fix jump host authentication with empty SSH agent (issues #116, #117)
14511451
- **v1.5.1 (2025/12/18):** Fix SSH disconnect error handling during authentication for password fallback (issue #113)

debian/changelog

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
bssh (2.0.0~beta.1-1~jammy1) jammy; urgency=medium
1+
bssh (2.0.0-1~jammy1) jammy; urgency=medium
22

3-
* v2.0.0-beta.1
3+
* v2.0.0
44
### New Features
55
- **bssh-server SSH Server**: A lightweight SSH server designed for container environments
66
- Full SSH, SFTP, and SCP protocol support
@@ -30,29 +30,39 @@ bssh (2.0.0~beta.1-1~jammy1) jammy; urgency=medium
3030
### Improvements
3131
- Added comprehensive server configuration manual and manpages
3232
- Shared module structure for client/server code reuse
33+
- Help examples and man pages now correctly use -C (uppercase) for the cluster flag
3334

3435
### Bug Fixes
35-
None
36+
- Fix inconsistent SSH idle disconnects: override russh's 10-minute inactivity_timeout when keepalive is enabled, enable TCP SO_KEEPALIVE on the socket via socket2, and wire user-configured server_alive_interval through the exec-mode code path (previously dropped at the ConnectionConfig boundary)
37+
- Use consistent source package name in bssh-server Debian control file
38+
- Use type inference for ioctl to support both glibc and musl builds in bssh-server
3639

3740
### CI/CD Improvements
3841
- Updated release workflow for dual-package distribution
3942
- Separate Debian packages for client and server
4043
- Separate Homebrew formulas for each component
44+
- Added Teams release notification
45+
- Updated non-LTS Ubuntu target from 25.04 plucky to 25.10 questing
4146

4247
### Technical Details
4348
- russh-based SSH server handler implementation
4449
- Modular audit exporter architecture with trait-based design
50+
- SshConnectionConfig::to_russh_config() now sets inactivity_timeout explicitly; to_tcp_keepalive() derives kernel TCP keepalive params
51+
- Client::connect_with_config rewritten around russh::client::connect_stream to apply SO_KEEPALIVE before handshake
52+
- Key-gen sites use rand::rng() directly now that rand 0.10 stable is reachable
4553

4654
### Dependencies
47-
None
55+
- Synced bssh-russh fork with upstream warp-tech/russh v0.60.0, pulling in the RustCrypto migration
56+
- rand 0.8 -> 0.10 stable (via rand_core 0.10.0), signature 3.0.0-rc.10, ed25519-dalek 3.0.0-pre.6, elliptic-curve 0.14.0-rc.28, p256/p384/p521 0.14.0-rc.7, ecdsa 0.17.0-rc.16, curve25519-dalek 5.0.0-pre.6, der 0.8, sec1 0.8, pkcs8 0.11.0-rc.11, pkcs5 0.8.0-rc.13, spki 0.8.0-rc.4, ml-kem 0.3.0-rc.1, ssh-key 0.6.18
57+
- tokio 1.50.0 -> 1.51.1, socket2 0.6.1 -> 0.6.3, signal-hook 0.4.3 -> 0.4.4, fastrand 2.3.0 -> 2.4.1, async-compression 0.4.37 -> 0.4.41, bytes 1.11.0 -> 1.11.1
4858

4959
### Breaking Changes
5060
- Package split: bssh-server now requires separate installation
5161

5262
### Known Issues
5363
None
5464

55-
-- Jeongkyu Shin <inureyes@gmail.com> Wed, 29 Jan 2026 12:56:00 +0900
65+
-- Jeongkyu Shin <inureyes@gmail.com> Mon, 13 Apr 2026 12:00:00 +0900
5666

5767
bssh (1.7.0-1~jammy1) jammy; urgency=medium
5868

docs/man/bssh-keygen.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Manpage for bssh-keygen
22
.\" Contact the maintainers to correct errors or typos.
3-
.TH BSSH-KEYGEN 1 "January 2026" "v2.0.0-beta.1" "User Commands"
3+
.TH BSSH-KEYGEN 1 "April 2026" "v2.0.0" "User Commands"
44

55
.SH NAME
66
bssh-keygen \- SSH key pair generation tool

docs/man/bssh-server.8

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Manpage for bssh-server
22
.\" Contact the maintainers to correct errors or typos.
3-
.TH BSSH-SERVER 8 "January 2026" "v2.0.0-beta.1" "System Administration Commands"
3+
.TH BSSH-SERVER 8 "April 2026" "v2.0.0" "System Administration Commands"
44

55
.SH NAME
66
bssh-server \- Backend.AI SSH Server for container environments

docs/man/bssh.1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.\" Manpage for bssh
22
.\" Contact the maintainers to correct errors or typos.
3-
.TH BSSH 1 "January 2026" "v2.0.0-beta.1" "bssh Manual"
3+
.TH BSSH 1 "April 2026" "v2.0.0" "bssh Manual"
44

55
.SH NAME
66
bssh \- Broadcast SSH - SSH-compatible client with parallel execution capabilities

0 commit comments

Comments
 (0)