Skip to content

Complete SSH transport migration with client-side key pinning #164

@rexlunae

Description

@rexlunae

Summary

Fully migrate the gateway protocol from WebSocket to SSH transport, with client-side host key pinning for cryptographic verification that the client is connecting to the intended gateway.

Requirements

Server-side (gateway)

Client-side (TUI)

  • SSH client implementation
  • Host key pinning storage (~/.rustyclaw/known_hosts or similar)
  • First-connect fingerprint verification prompt (TOFU)
  • Reject connections if host key changes (with override option)
  • Display fingerprint during pairing flow

Config

  • gateway.transport = "ssh" | "websocket" | "both" option
  • gateway.ssh.require_pinned_key = true option
  • Client config for pinned gateway fingerprints

Security Benefits

  • Authenticity: Client cryptographically verifies it's talking to the real gateway
  • MITM protection: Attacker can't intercept without the private host key
  • No TLS CA dependency: Self-contained trust model

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions