What's Changed
Security
- RDP password no longer exposed in
/proc— legacyRdpLauncherpassed password as/p:{pass}CLI argument visible to all system users; now uses/from-stdinpipe matchingSafeFreeRdpLauncherbehavior - SSH agent askpass script zeroized before deletion — passphrase temp file in
/tmp/rustconn-askpass-*/is now overwritten with zeros and fsynced beforeremove_dir_all, preventing recovery after abnormal termination - CLI
--passwordflag shows security warning —rustconn-cli secret set --passwordnow prints a warning that the value is visible in process listings and recommends the interactive prompt - Legacy XOR credential decryption now logged — transparent XOR→AES-256-GCM migration now emits
tracing::warn!so administrators can track remaining legacy credentials
Fixed
- Highlight rules not applied without per-connection rules — built-in defaults (ERROR, WARNING, CRITICAL, FATAL) and global highlight rules were skipped when a connection had no per-connection rules; removed the
is_empty()guard so highlights always apply (#66) - CLI
add --protocol zerotrustsilently created SSH connection — now returns an error instead of logging and falling back to SSH - Config file corruption on crash — sync
save_toml_filenow uses atomic temp-file + rename pattern matching the async version - Blocking DNS in async
check_port_async— replacedto_socket_addrs()withtokio::net::lookup_host()to avoid blocking the tokio worker thread
Improved
- Sidebar shows full connection name on hover — tooltip displays full name and host for truncated entries; removed
max_width_charslimit so labels use all available sidebar space - Log sanitization performance —
sanitize_output()regex patterns compiled once viaLazyLockinstead of on every call;SENSITIVE_PATTERNSdeduplicated from 29 to 16 lowercase-only entries - CLI
parse_protocolconsolidated — three duplicate implementations inadd.rs,template.rs,smart_folder.rsreplaced with sharedparse_protocol_type()+default_port_for_protocol()inutil.rs ProtocolResult<T>deduplication — removed duplicate type alias fromprotocol/mod.rs, now re-exported fromerror.rs- OpenTelemetry tracing variant marked deprecated —
TracingOutput::OpenTelemetrynow has#[deprecated]attribute until implementation is complete - Dead code cleanup — removed unused
AppStateError,VncLauncher,FieldValidator/FormValidatorframework,initialize_secret_backends(),create_async_resolver()
Dependencies
- Updated:
rustls-webpki0.103.9→0.103.10,zune-jpeg0.5.13→0.5.14
Installation
Debian/Ubuntu
sudo dpkg -i rustconn_0.10.3_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora
sudo dnf install rustconn-0.10.3-1.fc41.x86_64.rpmAppImage
chmod +x RustConn-0.10.3-x86_64.AppImage
./RustConn-0.10.3-x86_64.AppImageopenSUSE (OBS)
Packages available at: https://build.opensuse.org/package/show/home:totoshko88:rustconn/rustconn
# Tumbleweed
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/openSUSE_Tumbleweed/ rustconn
sudo zypper ref
sudo zypper in rustconn
# Leap 16.0
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/16.0/ rustconn
sudo zypper ref
sudo zypper in rustconn