50 lines
3.2 KiB
Markdown
50 lines
3.2 KiB
Markdown
# MrTerm
|
||
|
||
SSH-, SFTP- und RDP-Client im Stil von Termius – Electron + xterm.js + ssh2. Läuft auf Windows und Arch/CachyOS.
|
||
|
||
## Funktionen
|
||
- **Hosts**: Gruppen (verschachtelt), Tags, Farben, Suche, Quick Connect (`user@host:port`, `rdp://host`)
|
||
- **SSH-Terminal** in Tabs: Passwort, Schlüssel, SSH-Agent (Windows OpenSSH / `SSH_AUTH_SOCK`), Keyboard-Interactive/2FA, Jump-Hosts (ProxyJump-Ketten), Startbefehl, Env-Variablen, Suche, Zoom, 7 Farbschemata
|
||
- **SFTP**: Dual-Pane (lokal ↔ remote), Drag & Drop, Ordner rekursiv, Umbenennen, Löschen, chmod, Fortschrittsanzeige
|
||
- **RDP als Tab** direkt in MrTerm (Windows: mstsc eingebettet, Linux: xfreerdp3 via /parent-window unter X11/XWayland), alternativ im eigenen Fenster
|
||
- **RDP**: Windows → `mstsc` (Anmeldedaten temporär via `cmdkey`), Linux → FreeRDP (`xfreerdp3`/`sdl-freerdp3`/`wlfreerdp3`, Passwort über stdin)
|
||
- **Keychain**: Ed25519/ECDSA/RSA generieren, importieren, Public Key kopieren
|
||
- **Port-Forwarding**: lokal (-L), remote (-R), dynamisch/SOCKS5 (-D)
|
||
- **Snippets**, **Known Hosts** (TOFU, Warnung bei geändertem Schlüssel), **Verlauf**, `~/.ssh/config`-Import, Backup Export/Import
|
||
- **Import aus Devolutions Remote Desktop Manager** (Einstellungen → Import): Ordnerstruktur, RDP- und SSH-Einträge aus `.rdm`/XML, JSON oder CSV
|
||
- **7 App-Designs** (Midnight, Navy, Nord, Dracula, Catppuccin, Forest, Hell) + frei wählbare Akzentfarbe; Terminal-Schema optional „passend zum Design“
|
||
- **Auto-Update** aus den Gitea-Releases von https://git.mrblake.cc/MrBlake/MrTerm (Setup-EXE, Portable, AppImage, pacman)
|
||
- **Vault verschlüsselt** über das OS (Windows DPAPI, Linux libsecret/KWallet)
|
||
- Befehlspalette `Strg+Shift+K`, Tab schließen `Strg+Shift+W` (Strg+W/K/T bleiben im Terminal für nano & Co.), `Strg+Tab`, `Strg+1..9`, `Strg+Shift+C/V/F`
|
||
|
||
## Entwicklung
|
||
```bash
|
||
npm install
|
||
npm start
|
||
```
|
||
> In VS Code-Terminals ggf. vorher `ELECTRON_RUN_AS_NODE` entfernen.
|
||
|
||
## Pakete bauen
|
||
- Windows (auf Windows): `npm run dist:win` → Installer + Portable in `dist/`
|
||
- Arch/CachyOS (auf Linux): `npm run dist:linux` → AppImage + `.pacman`-Paket; installieren mit `sudo pacman -U dist/mrterm-*.pacman`
|
||
|
||
Abhängigkeiten unter Arch/CachyOS: `sudo pacman -S freerdp gnome-keyring` (oder `kwallet` unter KDE) für RDP bzw. Vault-Verschlüsselung.
|
||
|
||
**Build bricht mit `EACCES: permission denied, unlink 'build/config.gypi'` ab** (z. B. bei `cpu-features`): Dateien in `node_modules` gehören root, meist nach einem `npm install` oder Build mit `sudo`. Besitz zurückholen und erneut bauen:
|
||
|
||
```sh
|
||
sudo chown -R $USER: node_modules
|
||
npm run dist:linux
|
||
```
|
||
|
||
npm und die Builds danach nicht mehr mit `sudo` ausführen – nur `pacman -U` zum Installieren braucht root.
|
||
|
||
## Release veröffentlichen (für Auto-Update)
|
||
1. Version in `package.json` erhöhen
|
||
2. Auf jeder Plattform bauen (`npm run dist:win` bzw. `npm run dist:linux`)
|
||
3. `GITEA_TOKEN=<token> npm run release -- --notes "Was ist neu"` – legt das Release `v<version>` an und lädt die Pakete hoch
|
||
|
||
Installierte Clients prüfen beim Start (und über Einstellungen → Updates) und installieren das passende Paket. Für ein privates Repo in den Einstellungen ein Lese-Token hinterlegen.
|
||
|
||
Icons neu erzeugen nach Logo-Änderung: `npx electron scripts/make-icons.js`
|