Changelog

Was sich geändert hat.

Alle veröffentlichten Versionen — direkt aus den GitHub-Releases. Vollständige Commit-Historie im GitHub-Verlauf.

  • Integriertes In-App-Terminal: Neues xterm.js-basiertes SSH-Terminal, das direkt in die App eingebettet ist (über QWebEngineView/QWebChannel, überbrückt mit einem lokalen WebSocket-Server), auswählbar in den Einstellungen neben den vorhandenen externen SSH/PuTTY-Launchern. Unterstützt mehrere gleichzeitige Sitzungen pro Verbindung mit einer Registerkartenleiste, Hintergrundpersistenz beim Wechseln von Bedienfeldern und einer Schaltfläche zum erneuten Verbinden nach der Trennung.
  • Nativer SFTP-Browser: Neues Dateibrowserfenster (src/ui/sftp_browser.py), das über die Verbindungskarte erreichbar ist, sobald ein Host gemountet ist – Verzeichnisnavigation, Upload/Download mit Fortschritt, Umbenennen, Löschen und Neuer Ordner, alles wird über dedizierte Worker-Threads vom UI-Thread ausgeführt.
  • Pro-Lizenzsystem: Maschinenbasierte Aktivierung (src/pro_manager.py) mit einer offline, HMAC-verifizierten Lizenzprüfung und einem neuen Abschnitt „Pro-Lizenz“ in den Einstellungen. Das kostenlose Kontingent ist auf drei gleichzeitige Sitzungen mit integriertem Terminal begrenzt. Bei Überschreitung wird eine Upgrade-Eingabeaufforderung angezeigt.
  • Verbindungsvorlagen und Erkennung doppelter Namen: Das Dialogfeld „Hinzufügen/Bearbeiten“ verfügt über ein Vorlagen-Dropdown-Menü (Speichern/Anwenden/Löschen) und blockiert jetzt doppelte Verbindungs-/Vorlagennamen, indem automatisch eine eindeutige Alternative vorgeschlagen wird.
  • Kontextmenü der Verbindungskarte: Klicken Sie mit der rechten Maustaste auf das Menü zum Mounten/Unmounten, öffnen Sie es im Explorer, öffnen Sie den SFTP-Browser und stellen Sie eine Verbindung über OpenSSH/PuTTY/integriertes Terminal her.
  • Bestätigungsdialog zum Abmelden: Wählen Sie zwischen angemeldet bleiben, beenden, während die Laufwerke gemountet bleiben, oder beenden und alles aushängen.
  • Prüfung der Startvoraussetzungen: Blockiert den Start mit Download-Links, wenn WinFsp und/oder SSHFS-Win nicht installiert sind.
  • Einstellungen: Neuer Terminal-Backend-Selektor (SSH/PuTTY/integriertes xterm) und ein Schalter zum Deaktivieren des SSHFS-Attribut-/Verzeichnis-Cachings für Hosts, bei denen veraltete Cache-Daten ein Problem darstellen.
  • Neuer Release-Build-Workflow von GitHub Actions und ein nächtliches Versions-/Push-Hilfsskript für den Release-Prozess.
  • Die SSH-Schaltfläche der Verbindungskarte öffnet jetzt das integrierte Terminal, wenn dieses Backend in den Einstellungen ausgewählt wird, und greift andernfalls auf den externen Client zurück; „Open Mounted Path“ öffnet jetzt den neuen SFTP-Browser anstelle des Systemdatei-Explorers direkt.
  • Neugestaltung der Titelleiste mit einem einheitlichen Erscheinungsbild, passend zum ausgewählten Dunkel/Hell-Thema; Akzentfarbe appweit aktualisiert (#00b4d8 → #0077b6).
  • SSHFS-Mounts legen jetzt explizite WinFsp-Attribut-/Verzeichnis-/Volume-Info-Cache-Timeouts fest (die bei deaktiviertem Caching weiter verschärft werden) und das Aufheben der Bereitstellung führt dazu, dass ein hängengebliebener sshfs.exe-Prozess nach einer Kulanzfrist von 10 Sekunden zwangsweise beendet wird.
  • Die passwortbasierte SSH_ASKPASS-Härtung (einmaliges IPC-Token anstelle einer Klartext-Umgebungsvariable) gilt jetzt ab Sicherheitsstufe 1, anstatt Stufe 2 zu erfordern, sowohl für den nativen SSH-Launcher als auch für PuTTY.
  • „Beenden“ in der Taskleiste durchläuft jetzt denselben Bestätigungsablauf für die Mount-Bereinigung/Abmeldung wie das Hauptfenster, anstatt QApplication.quit() direkt aufzurufen.
  • Die Handhabung des rahmenlosen Fenstergrößenänderungscursors funktioniert jetzt ordnungsgemäß, wenn sich die Maus über untergeordneten Widgets und nicht nur über dem Fensterrahmen selbst befindet.
  • Build: Ausführbare CLI-Begleitdatei aus build_dual.ps1 entfernt (zukünftig nur GUI-Verteilung); Der PyInstaller-Build entfernt jetzt Symbole und schließt nicht verwendete stdlib-Module (tkinter, unittest, pytest usw.) aus, um die Größe der ausführbaren Datei zu reduzieren.
  • getuserby_username wählt nicht mehr sensible Spalten (Passwort-Hash/Salt, verschlüsselter Schlüssel) aus, die es nicht benötigt, wodurch die versehentliche Offenlegung von Anmeldedaten im Speicher reduziert wird.
  • Nur-Administrator-Kontovorgänge (Zurücksetzen des Passworts, Löschen von Benutzern, Auflisten von Benutzern) erzwingen jetzt die Autorisierung auf der auth_manager-Ebene, anstatt sich ausschließlich auf das Gating auf UI-Ebene zu verlassen.
  • Die Zeitgeber für die Anmeldesperre wurden von monoton auf Wanduhrzeit umgestellt, sodass eine Sperre nicht mehr durch einen Neustart der App umgangen werden kann.
  • Der Updater validiert ausführbare Dateipfade/Update-Dateipfade, bevor er sie in sein Selbstersetzungsskript einbettet, und überprüft nun eine SHA-256-Prüfsumme des heruntergeladenen Updates, bevor er es anwendet (fällt auf eine Warnung zurück, wenn die Version keine Prüfsumme bereitstellt).
  • Telemetrie-Aktionsparameter werden jetzt vor dem Senden URL-codiert, wodurch ein Randfall der Parameterinjektion in der Abfragezeichenfolge geschlossen wird.
  • Terminal- und SFTP-Sitzungen verwenden ablaufende Sitzungstoken zur einmaligen Verwendung, löschen Kennwörter sofort nach der Verwendung aus dem Speicher und binden den lokalen Bridge-Server nur an Loopback; Beide Funktionen verwenden denselben TOFU-Hostschlüssel-Überprüfungs- und Bestätigungsdialog, der an anderer Stelle in der App verwendet wird.
  • Das Pro-Lizenzvalidierungsgeheimnis (neoprovalidate.php) ist aus dem Repository ausgeschlossen.
  • Beim zweiten App-Start wird das Hauptfenster jetzt korrekt wiederhergestellt/fokussiert, auch wenn es in der Taskleiste ausgeblendet war, anstatt nichts zu tun.
Datei Größe
NeoSSHWinManager.exe 204.1 MB
  • Verbindungsgruppen/Tags und wiederverwendbare Vorlagen im gesamten Datenmodell, Datenbankmigration, Hinzufügen/Bearbeiten von Abläufen und Übersetzungen
  • Massen-Mount-/Dismount-Aktionen und ein Gruppenfilter im Hauptverbindungsheader
  • Spezielles Profilfenster, in dem Endbenutzer ihr Konto überprüfen und ihr Passwort ändern können
  • Das manuelle GitHub-Update überprüft den Download-Fortschritt und einen Install-on-Exit-Ablauf
  • Telemetrie-Opt-in-Eingabeaufforderung, persistente Telemetrieeinstellungen und asynchrone Telemetrieübermittlung
  • Das Hauptfenster, der Einstellungsbildschirm und die Formulare im rechten Bedienfeld wurden für das Layout der Version 1.5.0 überarbeitet
  • Verbindungskarten zeigen jetzt Gruppeninformationen und kompakte Hostdetails mit dem Laufwerksbuchstaben im Untertitel an
  • Verbindungsflüsse hinzufügen/bearbeiten unterstützen jetzt explizit Vorlagen und Oberflächengruppenmetadaten in der Benutzeroberfläche
  • Viele native Meldungsfelder wurden durch einen themenbezogenen benutzerdefinierten Dialog für Warnungen, Bestätigungen und Erfolgsmeldungen ersetzt
  • Angeheftete Kern-Python-Abhängigkeitsversionen für die Versionsumgebung 1.5.0
  • Die sichtbaren Zeichenfolgen der Anwendungsversion im Hauptfenster wurden aktualisiert, zum Dialog und zum Einzelinstanz-Mutex
  • Reduzierte Debug-Protokollierung sensibler Befehlszeilenargumente im PuTTY-Launcher
  • Gehärtete In-Memory-Verarbeitung von temporären Passwort-Tokens, die von SSH ASKPASS verwendet werden
  • Gehärteter SSH_ASKPASS-Passwortaustausch durch Ersetzen der Klartext-Umgebungsübertragung durch einmalige IPC-Tokens
  • Entspanntere Handhabung des Host-Schlüssels beim ersten Kontakt mit OpenSSH-Akzeptanz für SSH- und Sysinfo-Flows unter Beibehaltung von Host-Änderungsfehlern
  • Die Mindestlänge des Passworts wurde bei Registrierungs- und Benutzerverwaltungsabläufen von 6 auf 8 Zeichen erhöht
  • Eingeschränkte Berechtigungen für Absturzberichtsdateien, sodass Stack-Traces nicht mehr weltweit lesbar sind
  • Maskierte PuTTY-Passwortargumente in Debug-Protokollen, um den Verlust von Anmeldeinformationen zu verhindern
  • Passwort-Fallback hinzugefügt, wenn ein gespeicherter SSH-Schlüssel fehlschlägt, aber noch ein Passwort für dieselbe Verbindung verfügbar ist
  • Einheitliche destruktive Bestätigungsaufforderungen und Handhabung schmutziger Formulare über die gestaltete Dialogebene
  • Mehrere in der 1.5.0-Benutzeroberfläche verwendete deutsche Übersetzungszeichenfolgen und Speicherbezeichnungsschreibweisen wurden korrigiert
Datei Größe
NeoSSHWinManager.exe 46 MB
NeoSSHWinManager-cli.exe 28.2 MB
  • Absturz beim Klicken auf einen gemounteten Host (NameError: conn_id nicht in Infopanel-Lambdas definiert)
  • Die Schaltfläche „Kopieren“ in Fehlerdialogen funktioniert nicht
  • Der Ladestatus wird nicht gelöscht, wenn der Dialog „Passwort fragen“ abgebrochen wird
  • Bearbeitungsmodus: Abschnittsüberschriften im Vergleich zum Infobereich zu fett
  • Bearbeitungsmodus: Passwortpunkte unverhältnismäßig groß
  • Infofeld: Laufwerkskennzeichen durch Ordner-SVG-Symbol ersetzt, nur sichtbar, wenn der Host gemountet ist
  • Der Bearbeitungsmodus stimmt jetzt mit der Feldreihenfolge im Infobereich, der Containerstruktur und den Abschnittsbeschriftungen überein
  • Für visuelle Kontinuität wird oben im Bearbeitungsmodus das Statusabzeichen (angeschlossenes/nicht angeschlossenes Tablet) angezeigt
  • Schaltfläche „Speichern“: Das Diskettensymbol ersetzt das Häkchen
  • Heller Modus: Die Schaltfläche „Speichern“ erhält einen dezenten grünen Hintergrund; Das Löschsymbol ist für einen besseren Kontrast durchgehend rot
Datei Größe
NeoSSHWinManager.exe 45.7 MB
NeoSSHWinManager-cli.exe 27.8 MB
  • Umfassende Sicherheitsüberprüfung: Gehärtete Speicherung von Anmeldeinformationen, Sitzungsverarbeitung, Verschlüsselungsroutinen und Schlüsselableitung für Authmanager, Krypto, Datenbank, SSHLauncher und SSHFS_Controller
  • CWE-312 · Verbindungsmetadatenverschlüsselung: Host, Benutzername, Verbindungsname und Remote-Pfad werden jetzt mit AES-256-GCM verschlüsselt, bevor sie in der Datenbank gespeichert werden. Vorhandene Einträge werden beim ersten Login automatisch migriert.
  • CWE-732 · Windows ACL gehärtet: win32security ist jetzt ein harter Import auf Modulebene – eine fehlende pywin32-Installation löst beim Start einen expliziten ImportError aus, anstatt die Datenbankdatei allgemein lesbar zu machen.
  • CWE-307 · Brute-Force-Schutz: Die Anzahl der Anmeldeversuche ist jetzt pro Benutzername begrenzt. Nach 5 aufeinanderfolgenden Fehlern wird das Konto für 30 Sekunden gesperrt; Jeder weitere Block eskaliert (10 Versuche → 10 Minuten, 5 → 1 Stunde und mehr).
  • CWE-362 · Session Race Condition behoben: Session.currentuser ist durch einen threading.RLock geschützt; enc_key-Aktualisierungen nach Passwortänderungen werden atomar durchgeführt.
  • CWE-591 · Memory-Lock-Fehler jetzt sichtbar: mlockmemory() / munlockmemory() geben jetzt bei einem Fehler einen WARNUNG-Protokolleintrag aus, anstatt stillschweigend False zurückzugeben.
  • CWE-214 · CLI-Schlüssel über stdin: --connect-cli – liest den Zugriffsschlüssel von stdin und verhindert so die Offenlegung in Prozesslisten und im Shell-Verlauf.
  • CWE-78 · Shell-Injection-Verhinderung: Unsichere Shell-Interpolation im sshlauncher entfernt; issafelabel() im sshfscontroller hinzugefügt. Das SSH-Terminal wird jetzt über cmd.exe + CREATENEW_CONSOLE anstelle von Shell=True gestartet.
  • Migration von CLI-Schlüsseln: Klartext-CLI-Zugriffsschlüssel werden bei der ersten Anmeldung nach dem Update automatisch verschlüsselt.
  • SSHASKPASS für die Passwortauthentifizierung: Passwörter werden über den SSHASKPASS-Mechanismus übergeben – niemals in der Prozessliste angezeigt.
  • Validierung des Verbindungsnamens: Namen, die Shell-Metazeichen enthalten, werden vor dem Einfügen in die Datenbank abgelehnt.
  • MITM Fix (Auslassung in Version 1.3.1 korrigiert): StrictHostKeyChecking=yes wurde bereits in Version 1.3.1 angewendet, aber nicht dokumentiert. Installationen mit Version 1.3.0 oder früher sind anfällig – führen Sie sofort ein Upgrade durch.
  • PuTTY PPK-Integration: Automatische Erkennung und konfigurierbarer PPK-Schlüsselpfad für PuTTY-basierte Verbindungen
  • Verbesserungen des nativen SSH-Terminals: Überarbeitete Terminal-Startlogik für PuTTY und natives OpenSSH
  • SysInfo mit Schlüssel oder Passwort verfügbar: Systeminformationen werden immer dann abgerufen, wenn ein SSH-Schlüssel oder ein gespeichertes Passwort konfiguriert wird – die Einstellung der Sicherheitsstufe sperrt den Sysinfo-Zugriff nicht mehr.
  • SysInfo-Authentifizierungsüberlagerung: Anstelle eines allgemeinen Fehlers wird eine klare Überlagerung angezeigt, wenn weder Schlüssel noch Kennwort konfiguriert sind.
  • Countdown zur Anmeldesperre: Nach einer Sperrung über die Klassengrenze hinweg zeigt das Anmeldeformular einen Live-Countdown mit der für Menschen lesbaren verbleibenden Zeit an.
  • Anmeldeschaltfläche bei Eingabe gesperrt: Die Anmeldeschaltfläche ist deaktiviert, bis sowohl Benutzername als auch Kennwort (jeweils ≥ 1 Zeichen) ausgefüllt sind.
  • Über Dialog Redesign: Kartenlayout mit gruppierten anklickbaren Linkschaltflächen für Projekt-, Dokumentations-, GitHub- und Autorenlinks
  • Schaltfläche „Info“ in der Seitenleiste: Persistente Schaltfläche „Info“ in der Seitenleiste
  • SSHFS-Massentrennungsfehler: Es wurde eine Race-Bedingung in sshfs_controller behoben, die dazu führte, dass alle gemounteten Laufwerke gleichzeitig getrennt wurden
  • Absturz beim Aufheben der Bereitstellung des Laufwerks: Ein Absturz wurde verhindert, wenn die Bereitstellung eines Laufwerks aufgehoben wurde, während die Benutzeroberfläche noch einen Verweis darauf enthielt (#1).
  • QMessageBox Dark Mode: Hintergrundfarbe von Nachrichtenboxen im Dark Mode korrigiert (#3)
  • F2-Absturz bei nicht standardmäßigen Widgets: Absturz beim Drücken von F2 bei nicht standardmäßigen Widgets verhindert (#4)
  • Verhalten beim Scrollen von Formularen: Das Scrollen im Dialogfeld „Verbindung hinzufügen/bearbeiten“ auf kleineren Bildschirmen wurde korrigiert
  • Absturzberichtspfad: Absturzberichte werden jetzt in %APPDATA%\SSHWinManager\crash_report.txt geschrieben
  • Weitergabe von Worker-Thread-Fehlern: Mount-/Unmount-Worker-Threads fangen jetzt Ausnahmen ab und geben einen MountResult-Fehler aus, anstatt stillschweigend abzustürzen
Datei Größe
NeoSSHWinManager.exe 45.7 MB
NeoSSHWinManager-cli.exe 27.9 MB
  • Agent-CLI-Key im Verbindungseditor direkt sichtbar statt maskiert.
  • Zwei sichtbare SVG-Aktionen für CLI-Key eingeführt: kopieren und neu generieren.
  • Copy-Feedback im Editor per Check-Icon ergänzt.
  • Versions- und Website-Metadaten auf 1.3.1 angehoben.
Datei Größe
NeoSSHWinManager.exe 42.9 MB
NeoSSHWinManager-cli.exe 27.8 MB
  • Einstellungen und Benutzerverwaltung als Vollbild-Panel via QStackedWidget
  • Sidebar-Navigation mit Hervorhebung des aktiven Eintrags
  • [i]-Schaltfläche öffnet ausschließlich das SSH-Live-Systeminfo-Panel
  • Bearbeiten-Schaltfläche immer sichtbar, deaktiviert wenn Verbindung eingehängt
  • Primäre Schaltflächen: Verlauf #00b4d8 → #0077b6, schwarzer Text
  • Titelleistenfarbe passt sich dem aktiven Design via DwmSetWindowAttribute (Windows 11+) an
  • Checkbox-Indikator: 14×14 px, weißer Haken auf türkisem Hintergrund
  • Panel-Header: 52 px Höhe, Kicker-Labels entfernt, Titel vertikal zentriert
  • Listenansicht mit 4-px-Farbbalken für CPU/RAM/Festplatte
  • Vollständige statische Website in website/ (Landing, Features, Docs, Changelog, Download)
  • Interaktive Browser-Simulation (website/app.html) in reinem HTML/CSS/JS
  • Keine Installation nötig, direkt über GitHub Pages bereitstellbar
  • Veraltetes credential_store.py entfernt
  • AppUserModelID-Präfix von dennis. auf neo. geändert
  • Versionserhöhung auf 1.3.0
Datei Größe
NeoSSHWinManager.exe 42.9 MB
NeoSSHWinManager-cli.exe 27.8 MB
  • Fügen Sie dauerhafte Unterstützung für helle/dunkle Designs hinzu.
  • Fügen Sie den Authentifizierungsmodus „Jedes Mal fragen“ für Verbindungen hinzu.
  • Verbessern Sie das Klickverhalten der Verbindungskarte bei der Montage.
  • Anwendungssymbole für Anmelde- und Hauptfenster korrigiert.
  • Aktualisieren Sie die Anwendungs- und Windows-Metadaten auf 1.2.0.
Datei Größe
NeoSSHWinManager.exe 42.7 MB
NeoSSHWinManager-cli.exe 27.7 MB