Avatar of Martins Berzins
Martins Berzins

Full-stack indie hacker building SQLitePilot in public and hoping these tools genuinely help other teams.

Dev Updates

Big Onboarding Update: No More Private Key Uploads

SQLitePilot now generates a unique SSH keypair per connection, so you only copy a public key to your server and never paste private keys into the app.

Last updated: Mar 11, 2026

One piece of feedback kept showing up in calls and emails:

"I want to try the service, but I don't want to paste my personal private SSH key into a web form."

That is a completely reasonable reaction. So we changed the flow.

What changed

SQLitePilot no longer requires you to upload your private SSH key.

Now, when you create a new connection, SQLitePilot generates a unique Ed25519 SSH keypair for that connection.

  • The private key stays on our backend, encrypted at rest.
  • We show you the public key.
  • You copy that public key into your server ~/.ssh/authorized_keys once.
  • You click Test Connection and continue.

Why this is better

Easier setup

The old flow had too many steps and too much context switching.

Find local key files, pick the right one, copy the full block carefully, avoid formatting errors, then upload.

Now it is just connection details + one public key paste on the server.

Better security posture

The biggest win is trust.

You never hand over your personal workstation key to SQLitePilot. Instead, each connection gets its own generated keypair. That means cleaner separation and less blast radius if you rotate or revoke access.

Cleaner operations

Generated per-connection keys are easier to reason about.

  • Remove a connection: its key goes away with it.
  • Need to rotate access: regenerate by recreating the connection.
  • No mystery key reuse across unrelated servers.

More control to you

Access stays in your hands.

If you no longer want SQLitePilot to access a server, you can revoke it immediately by removing the generated public key from ~/.ssh/authorized_keys on that server.

No ticket, no waiting, no hidden lock-in. You decide when access starts and when it stops.

New connection flow (30 seconds)

  1. Open Connections and click Add new connection.
  2. Enter host, username, and database path.
  3. Save connection.
  4. Copy the generated public key shown in SQLitePilot.
  5. Add it to your server ~/.ssh/authorized_keys.
  6. Click Test Connection.

That is it. Try!

If you hit any rough edge in the new flow, send me details at [email protected].