What's Changed
SSH.NET Migration for Cross-Platform Support
This release replaces external SSH tool dependencies (sshpass, ssh) with the SSH.NET library, enabling native Windows support without requiring WSL or Cygwin.
Key Changes:
- Replace
sshpass/sshprocess spawning with SSH.NET library - Create unified SSH infrastructure (
SshClientService,IGatewaySshService) - Remove
openssh-clientandsshpassfrom Docker image (smaller image size) - Add
.editorconfigfor consistent code formatting
Bug Fixes:
- Add keyboard-interactive auth support for UniFi Gateways (in addition to standard password auth for switches/APs)
- Fix gateway SSH test using wrong service (was giving false positives)
- Fix "Last tested" timestamp not updating after SSH connection tests
- Fix misleading "iperf3 not installed" error when SSH connection actually fails
- Improve error messages for SSH authentication failures
- Fix null reference warnings in Sqm.razor
Infrastructure:
- Settings page now uses
IGatewaySshServicedirectly for gateway operations - Device SSH test now works with any device type (AP, switch, modem) instead of only APs
- Timestamps display in local time instead of UTC
Full Changelog: v0.9.3...v0.9.4