Repository navigation
v0.7.0 - SSH Key Passphrase Support
What's New
SSH Key Passphrase Prompt
KRemote now supports encrypted SSH private keys with interactive passphrase prompts.
Features:
- Detects when an SSH private key requires a passphrase and prompts instead of failing
- Clean material dialog for passphrase entry (obscured input, show/hide toggle)
- Passphrase is passed transiently to the SSH layer, never persisted to the vault
- Works for both initial connection and reconnect scenarios
- Applies to both direct SSH connections and jump host tunnels
Technical:
- New \PassphraseDialog\ widget (\lib/widgets/passphrase_dialog.dart)
- \Connection\ model gained a transient \private_key_passphrase\ field, marked #[serde(skip)]\ so it's never written to the vault file
- Detection: attempt the connection first; if libssh2 returns an error whose message mentions 'passphrase', 'encrypted', or 'decrypt', prompt for a passphrase and retry
- Implemented in \home_screen.dart\ (Test Connection) and \ abbed_terminal_screen.dart\ (session connect/reconnect)
Known limitation: detection relies on matching substrings in libssh2's error text rather than inspecting the PEM header directly. This works reliably in practice but is a bit fragile compared to checking the key file for an \ENCRYPTED\ header before attempting to connect.
Why this matters: Most security-conscious users encrypt their private keys with a passphrase. Previously KRemote had no way to supply one, so encrypted keys simply couldn't be used.
Downloads
- Windows x64: KRemote-v0.7.0-windows-x64.zip
Installation
Extract the zip and run kremote.exe. Your existing vault and connections are preserved.
Full changelog: v0.6.0...v0.7.0