RemminaMac — SSH / RDP Client für macOS

Remmina-inspirierter Connection-Manager für macOS, nativ in Swift + SwiftUI.

Plattform Sprache UI

Layout wie Remmina: links Profil-Liste mit Suche + Gruppen, rechts Verbindungs-Tabs, unten Statusbar.

Inhaltsverzeichnis

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)
  • 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)
  • Passwörter in Keychain, nie im Klartext-JSON
  • SSH via System-ssh in 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.

S
Description
Remmina-inspirierter SSH/RDP-Client fuer macOS (SwiftUI)
Readme MIT
1.2 MiB
v0.7.0
Latest
2026-09-22 08:19:26 +00:00
Languages
Swift 92.1%
Shell 6%
C 1.9%