You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Support SSH keepalive settings in interactive mode (#172)
* feat: Support SSH keepalive settings in interactive mode
Fix#168: Interactive mode now properly honors SSH keepalive configuration
(--server-alive-interval and --server-alive-count-max CLI options, SSH config
file settings, and YAML config file settings).
Changes:
- Add ssh_connection_config field to InteractiveCommand struct
- Create build_ssh_connection_config helper in dispatcher for code reuse
- Update establish_connection to use Client::connect_with_ssh_config
- Pass SshConnectionConfig to JumpHostChain for jump host connections
- Add connection health check timeout to PTY session loop
- Add interactive mode keepalive tests to ssh_keepalive_test.rs
This fix ensures that interactive mode connections:
1. Honor CLI --server-alive-interval/--server-alive-count-max options
2. Honor SSH config file ServerAliveInterval/ServerAliveCountMax settings
3. Honor YAML config file server_alive_interval/server_alive_count_max settings
4. Apply keepalive settings to both direct and jump host connections
5. Have periodic health checks to detect dead connections
* fix: Add missing ssh_connection_config field to test and example files
Priority: HIGH
Issue: Build failure due to missing field in InteractiveCommand struct
Review-Iteration: 1
The PR added ssh_connection_config field to InteractiveCommand but missed
updating the example file and test files that instantiate this struct.
* chore: Fix lint warnings, format code, and update documentation
- Add #[allow(clippy::too_many_arguments)] for establish_connection function
- Apply cargo fmt formatting fixes
- Add interactive mode + keepalive example to README and manpage
0 commit comments