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.

Using ssh-keygen

You can also use standard SSH keys:

Note

The generate-iris-keys utility is primarily for service accounts and inter-process communication. For end-user authentication, ssh-keygen is the standard approach.

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 hash from 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.