v0.4.0
RemminaMac — SSH / RDP Client für macOS
Remmina-inspirierter Connection-Manager für macOS, nativ in Swift + SwiftUI.
Layout wie Remmina: links Profil-Liste mit Suche + Gruppen, rechts Verbindungs-Tabs, unten Statusbar.
Inhaltsverzeichnis
- Features
- Screenshots / Layout
- Schnellstart
- Installation
- Benutzung
- Architektur
- SSH-Keys & Sicherheit
- RDP / VNC unter macOS
- Profile-Format
- Release-Binary
- Fehlerprotokoll
- Roadmap
- Lizenz
Features
- GUI im Remmina-Layout (
Views/ContentView.swift):- Sidebar: Gruppen-Picker, Suche, Profil-Liste, Doppelklick = Verbinden
- Detail: Tab-Ansicht offener Sitzungen, Verbindungsdetails, Statusbar
- Toolbar: Neu / Bearbeiten / Duplizieren / Verbinden / Quick-Connect / SSH-Keys
- Profile laden / speichern / duplizieren / löschen
- JSON in
~/Library/Application Support/RemminaMac/profiles.json - Export / Import (siehe Benutzung)
- JSON in
- Protokolle: SSH, SFTP, RDP, VNC (
Models/ConnectionProfile.swift:3) - SSH-Keys speichern & verwalten (
Views/SSHKeysView.swift):- Import aus
~/.ssh, Datei-Picker,ssh-keygen-Wrapper (ed25519) - Passphrases in macOS Keychain (
Security/KeychainHelper.swift)
- Import aus
- Passwörter in Keychain, nie im Klartext-JSON
- SSH via System-
sshin Terminal.app (Services/ConnectionServices.swift:6) - RDP via FreeRDP (
xfreerdp) oder Fallback Microsoft Remote Desktop - VNC via
vnc://-Scheme
Screenshots / Layout
+-------------------------------------------------------------+
| Toolbar: [+][Edit][Copy][Key] | [▶ Verbinden][⚡Quick] |
+------+-------------------------------+--------------------+
| Gruppe | Tab: Webserver | Büro-PC | ... | Detail |
| Suche +-------------------------------+ |
| - Webserver | Verbindungsdetails (Befehl)| |
| - Büro-PC | Hinweis | |
| - Dateiserver+-------------------------------+ |
+------+-------------------------------+--------------------+
| Statusbar: ● Bereit ... N Profile · M Sitzungen |
+-------------------------------------------------------------+
Schnellstart
cd RemminaMac
swift build
swift run RemminaMac
# In Xcode:
open Package.swift
# Target RemminaMac → My Mac → Run
SSH-Keys & Sicherheit
- Private-Key-Pfade stehen in
sshkeys.json, Passphrases nur in Keychain. - Service-Name:
RemminaMac, Accounts:profile-<UUID>,sshkey-<UUID>. - Keychain lesen/schreiben:
Security/KeychainHelper.swift:5. - Es werden keine Secrets ins Git-Repo geschrieben (siehe
.gitignore).
RDP / VNC unter macOS
- Optional:
brew install freerdp - Mit FreeRDP:
xfreerdp /v:HOST:PORT /u:USER [/size:WxH | /f] - Ohne:
rdc://→ Microsoft Remote Desktop (aus App Store installieren) - VNC:
open vnc://host:port
Profile-Format
[
{
"id": "UUID",
"name": "Webserver",
"protocol": "SSH",
"host": "192.168.1.10",
"port": 22,
"username": "admin",
"group": "Server",
"colorTag": "blue",
"resolution": "Automatisch",
"sshKeyID": null,
"passwordAccount": "profile-UUID",
"extraArgs": "",
"lastConnected": null
}
]
Release-Binary
Fertige Binaries liegen unter Git-Releases (dist/ wird lokal gebaut, nicht committet):
./scripts/build-release.sh
./scripts/build-app.sh # RemminaMac.app für /Applications
./scripts/build-dmg.sh # DMG mit Drag-and-drop auf Programme
# → dist/RemminaMac-<version>-macos-arm64.zip + .sha256
# → dist/RemminaMac-<version>-macos-arm64.dmg + .sha256
ls dist/
Details: docs/INSTALL.md, docs/RELEASING.md.
Roadmap
- Eingebettetes Terminal (SwiftTerm + swift-nio-ssh)
- Echte RDP-Einbettung (FreeRDP-Bridge) statt externem Prozess
- SFTP-Browser integriert
- Export/Import-Buttons in der GUI
- Tray / Favoriten / Ordner-Badges wie Remmina
Lizenz
MIT — siehe LICENSE.