Skip to main content
For the whole flow, from key to shell, see Connect over SSH.

Register an SSH key

API: Business. Permission: none. No organization membership is needed. The organization route is a deprecated alias for personal registration. Its orgID does not scope the key or require membership of that organization, and registering through it grants no access to the organization. Use /me/ssh-keys. Adds a public key to your account. Every cluster in every organization where you hold clusters.ssh accepts it. Registering a key starts an access update on those clusters. GET /clusters/{clusterId}/ssh-access reports confirmed keys and their key-set generation. Compare that generation with this response to confirm the change reached a cluster; see Wait for access.
Your first active key adds you to the user list on clusters where you have SSH access, which restarts their compute nodes and ends running jobs. Further keys restart nothing. See Access changes restart nodes.

Parameters

The OpenAPI document shows both headers as optional. They are required; a request without either returns 400.

Request body

Response

201 when the key is registered, 200 when the request replays an earlier one with the same Idempotency-Key.

Example

Errors

This endpoint reports its own errors with error in place of message; see Errors.

List your SSH keys

API: Business. Permission: none. No organization membership is needed. Returns every key you have registered, including revoked ones.

Response

Example

Revoke an SSH key

API: Business. Permission: none. No organization membership is needed; you can revoke only your own keys. Permanently revokes a key in every organization. A revoked key cannot be registered again. Each cluster where you can log in applies the change, and the gateway then closes sessions and forwarded connections that used the key. To confirm that a cluster has applied it, see Wait for access.
Revoking your last active key removes you from each cluster’s user list, which restarts its compute nodes and ends running jobs. Revoking a key while you keep another restarts nothing. See Access changes restart nodes.

Parameters

Response

200, with ssh_key (now revoked), ssh_key_set (your new key set, with the next generation), and command_id. Repeating the request with the same Idempotency-Key returns the same result. Revoking a key that is already revoked, with a new Idempotency-Key, also returns 200: the key and your current key set, with generation unchanged, and no access update.

Errors

Example

Login shell

API: Business. Permission: none. No organization membership is needed. Your login shell applies on every cluster where you can log in, in every organization. GET /me returns it as user.login_shell. PUT /me/login-preferences takes {"shell": "/bin/zsh"}, with Idempotency-Key and Audit-Reason headers, and returns 200 with shell and command_id. shell must be an absolute path; the default is /bin/bash. An empty or relative path, a path with a control character, or /usr/sbin/nologin returns 400; a malformed body can return 422. Sending your current shell again starts no access update. Your username, uid, gid, and home directory stay the same. New SSH sessions use the shell once the cluster has applied it. Open sessions are not closed and no nodes restart. If the shell is missing or not executable on the login node, the session falls back to /bin/bash. See Choose your login shell.

Example