Major rewrite to use native ssh command instead of Go SSH library:
BREAKING CHANGE: Now requires ssh command in PATH
Benefits:
- Full SSH feature support including ProxyCommand
- Works with SSH containers and jump hosts
- Supports all SSH authentication methods
- Consistent behavior with terminal SSH
- No more custom SSH client implementation
Changes:
- Port detection now uses 'ssh hostname command'
- Port forwarding uses 'ssh -L localport:localhost:remoteport hostname'
- Connection testing uses native ssh command
- Removed golang.org/x/crypto/ssh dependency
- Updated documentation to reflect SSH compatibility
This fixes issues with SSH containers that require ProxyCommand
and provides full compatibility with user SSH configurations.
Co-authored-by: Ona <no-reply@ona.com>
- Support both double quotes and single quotes in config values
- Handle quoted Include directives (e.g., Include "gitpod/config")
- Properly resolve relative paths in includes to ~/.ssh/ directory
- Maintain compatibility with unquoted values
- Add parseConfigLine function for proper quote handling
This fixes compatibility with Gitpod and other tools that generate
SSH configs with quoted include paths.
Co-authored-by: Ona <no-reply@ona.com>
- Support Include directive in SSH config files
- Handle glob patterns (e.g., Include ~/.ssh/config.d/*)
- Prevent circular includes with cycle detection
- Gracefully handle missing or invalid include files
- Maintain compatibility with existing config parsing
This allows users to organize their SSH configs across multiple files
as supported by OpenSSH.
Co-authored-by: Ona <no-reply@ona.com>
- Interactive TUI for SSH port forwarding
- Reads from ~/.ssh/config for host selection
- Automatic port detection on remote hosts
- Manual port forwarding option
- Graceful error handling and connection timeouts
- Built with Bubble Tea framework
Co-authored-by: Ona <no-reply@ona.com>