Authentication keys

Deephaven supports key-based (challenge-response) authentication as an alternative to passwords. This method is recommended for:

  • Batch queries and automated processes — No interactive password entry required.
  • Service accounts — Secure, auditable access for system processes.
  • Enhanced security — Keys can be longer and more complex than passwords.

To authenticate using keys, the user must have a private key file, and the authentication server must have the corresponding public key registered.

Generating key pairs

Using Deephaven's key generator

Generate a Deephaven-format key pair:

This creates two files in the current directory:

  • pub-username.base64.txt — Public key (register with server)
  • priv-username.base64.txt — Private key (keep secure, give to user)

The utility generates ECDSA keys using the secp256r1 curve.

Registering public keys

Import via CLI

Add a public key to the ACL store:

Note

Use the full absolute path to the public key file.

List registered keys

View all registered public keys:

Delete a key

Remove a public key by its hash (obtain the hash from dhconfig acls publickeys list --include-hash):

Client configuration

After registering the public key, configure clients to use the private key.

Java system property

For batch queries and automated processes:

Python client

See Public and private keys for complete client configuration options.

Securing private keys

Private keys are equivalent to passwords. Protect them accordingly:

Best practices:

  • Never share private keys.
  • Store in secure locations only.
  • Use separate keys for different purposes (user login vs. service accounts).
  • Rotate keys periodically.
  • Revoke keys immediately when compromised or no longer needed.

Pre-configured system keys

Deephaven installations include pre-generated keys for system processes in /etc/sysconfig/deephaven/auth/:

Key filePurpose
priv-iris.base64.txtDefault admin/system operations
priv-merge.base64.txtMerge server authentication
priv-tdcp.base64.txtTable Data Cache Proxy
priv-authreconnect.base64.txtAuthentication server reconnection
priv-controllerConsole.base64.txtController console operations

These are system-level keys and should not be used for regular user authentication.