Skip to content

feat: add CA-signed certificate authentication for SSH credentials#812

Closed
black0utdev wants to merge 3 commits into
Termix-SSH:dev-2.3.0from
black0utdev:feat/ca-signed-certificate-auth
Closed

feat: add CA-signed certificate authentication for SSH credentials#812
black0utdev wants to merge 3 commits into
Termix-SSH:dev-2.3.0from
black0utdev:feat/ca-signed-certificate-auth

Conversation

@black0utdev
Copy link
Copy Markdown

Overview

Support OpenSSH certificate-based authentication (-cert.pub files) in the Credentials manager. When a CA-signed certificate is stored alongside a private key, Termix uses it during SSH connection establishment so that servers relying on certificate-based authorization work out of the box.

Changes Made

  • db/schema.ts: add cert_public_key column to ssh_credentials table
  • db/index.ts: auto-migration via addColumnIfNotExists
  • routes/credentials.ts: expose certPublicKey in create/update/get endpoints
  • ssh/auth-manager.ts: include certPublicKey in ResolvedCredentials
  • ssh/host-resolver.ts: propagate certPublicKey when resolving credentials
  • ssh/opkssh-cert-auth.ts: refactor shared logic into _applyCertToConnection; export new setupCACertAuth() with optional passphrase support
  • ssh/terminal.ts: call setupCACertAuth() when a certificate is present
  • utils/ssh-key-utils.ts: detect all OpenSSH cert types in public key parser
  • types/index.ts: add certPublicKey to Credential, CredentialBackend, CredentialData interfaces
  • CredentialAuthenticationTab.tsx: new CA Certificate section with file upload, paste editor and automatic cert-type badge
  • CredentialEditor.tsx: certPublicKey wired into form schema and submit
  • CredentialViewer.tsx: show certificate status in security tab
  • locales/en.json: add i18n strings for new UI elements

Screenshots / Demos

Screenshot 2026-05-23 at 00 15 32

Checklist

  • Code follows project style guidelines
  • Supports mobile and desktop UI/app (if applicable)
  • I have read Contributing.md
  • This is not a translation request. See docs

LukeGus and others added 3 commits May 13, 2026 02:01
Support OpenSSH certificate-based authentication (-cert.pub files) in
the Credentials manager. When a CA-signed certificate is stored alongside
a private key, Termix uses it during SSH connection establishment so that
servers relying on certificate-based authorization work out of the box.

Changes:
- db/schema.ts: add cert_public_key column to ssh_credentials table
- db/index.ts: auto-migration via addColumnIfNotExists
- routes/credentials.ts: expose certPublicKey in create/update/get endpoints
- ssh/auth-manager.ts: include certPublicKey in ResolvedCredentials
- ssh/host-resolver.ts: propagate certPublicKey when resolving credentials
- ssh/opkssh-cert-auth.ts: refactor shared logic into _applyCertToConnection;
  export new setupCACertAuth() with optional passphrase support
- ssh/terminal.ts: call setupCACertAuth() when a certificate is present
- utils/ssh-key-utils.ts: detect all OpenSSH cert types in public key parser
- types/index.ts: add certPublicKey to Credential, CredentialBackend,
  CredentialData interfaces
- CredentialAuthenticationTab.tsx: new CA Certificate section with file
  upload, paste editor and automatic cert-type badge
- CredentialEditor.tsx: certPublicKey wired into form schema and submit
- CredentialViewer.tsx: show certificate status in security tab
- locales/en.json: add i18n strings for new UI elements
@LukeGus LukeGus changed the base branch from main to dev-2.3.0 May 26, 2026 20:41
@LukeGus
Copy link
Copy Markdown
Member

LukeGus commented May 26, 2026

Merged manually into dev-2.3.0 via rebase. Conflicts resolved: updated UI changes to match the 2.3.0 UI rewrite (HostManager.tsx) and moved i18n strings to the new locales path.

@LukeGus LukeGus closed this May 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants