Self-hosted SSH + SFTP + RDP in a browser — MobaXterm replacement
Go to file
Vantz Stockwell 4a0c2c9790
Some checks failed
Build & Sign Wraith / Build Windows + Sign (push) Has been cancelled
fix: SSH key auth — handle EC/DSA keys via openssl pkey fallback
russh only parses 4 PEM headers: OPENSSH, RSA, PKCS8, ENCRYPTED PKCS8.
EC keys (-----BEGIN EC PRIVATE KEY-----) with PKCS5 encryption silently
failed with "Could not read key".

Fix adds two fallbacks:
1. If russh can't parse the key, convert to PKCS8 via `openssl pkey`
   which handles EC, DSA, and all other OpenSSL-supported formats
2. If the input doesn't start with -----BEGIN, try reading it as a
   file path (supports ~ expansion) for keys stored on disk

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 19:18:01 -04:00
.gitea/workflows fix: attach installer .exe to Gitea release as downloadable asset 2026-03-24 16:48:01 -04:00
docs docs: Phase 7 complete — CLAUDE.md + Go migration checklist 2026-03-17 16:48:36 -04:00
src feat: RDP clipboard paste, keyboard grab default ON, frame dirty flag 2026-03-24 17:57:16 -04:00
src-tauri fix: SSH key auth — handle EC/DSA keys via openssl pkey fallback 2026-03-24 19:18:01 -04:00
.gitignore chore: add .gitignore, remove node_modules and target from tracking 2026-03-17 15:10:00 -04:00
CLAUDE.md docs: update CLAUDE.md test count to 82 2026-03-24 18:34:03 -04:00
index.html feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
package-lock.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
package.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
tsconfig.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
tsconfig.node.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
vite.config.ts feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00