IPXdocs
API reference

SSH keys

Register the public key IPX injects into every box you rent. No key, no way in.

IPX never sets a password on a box. When we provision the GPU you rented, we inject your SSH public key at boot, and that key is the only credential that opens the reverse tunnel to gpu.ipxtechholding.com. Register a key here once, and every box you rent afterward trusts it.

You always keep the private half. IPX only ever stores your public key and its fingerprint. We can inject it and identify it, but we can never log in as you.

Authentication

Every call on this page requires your bearer token. Create or rotate one at Settings · API access, then export it so the examples below work verbatim.

terminal
# paste the token from Settings · API access
$ export IPX_TOKEN="ipx_live_..."

Treat the token like a password. Anyone holding it can register keys and rent GPUs that bill against your balance. Rotate it from Settings if it leaks.

Register a key

POST/api/v1/ssh_keys

Send a name and an OpenSSH public key. IPX stores it, computes a fingerprint, and returns the saved record. The new key is eligible for injection into the next box you rent.

Body parameters

namestringrequired
A label to recognize the key by later. laptop-2026
public_keystringrequired
The full contents of your OpenSSH public key, including the type prefix. ssh-ed25519 AAAA... you@host

Send the public half, never the private one. The public key is the .pub file, for example ~/.ssh/id_ed25519.pub. The private file (no extension) never leaves your machine.

Request

request
# read the public key straight off disk into the request
$ curl -X POST https://gpu.ipxtechholding.com/api/v1/ssh_keys \\
    -H "Authorization: Bearer $IPX_TOKEN" \\
    -H "Content-Type: application/json" \\
    -d "{
      \\"name\\": \\"laptop-2026\\",
      \\"public_key\\": \\"$(cat ~/.ssh/id_ed25519.pub)\\"
    }"

Response

A successful call returns 201 Created with the stored record.

response
{
  "id": 4271,
  "name": "laptop-2026",
  "fingerprint": "SHA256:Qx7v2pT9k3mB8nLwR6yZ1aF0cH4jE5sU7dV9gN2bX8"
}

Response fields

idinteger
The key's identifier. Reference it when you rent a box to choose which key gets injected.
namestring
The label you sent, echoed back.
fingerprintstring
The SHA256 fingerprint IPX computed from your public key. Compare it against ssh-keygen -lf output to confirm we stored the right key.

Got a fingerprint back? The key is registered and ready. Verify it matches your local key with the command below.

terminal
# the fingerprint here must match the one in the response
$ ssh-keygen -lf ~/.ssh/id_ed25519.pub
256 SHA256:Qx7v2pT9k3mB8nLwR6yZ1aF0cH4jE5sU7dV9gN2bX8 you@host (ED25519)

Don't have a key yet?

Generate one in seconds, then register the public half with the request above.

  1. Create a keypair

    An Ed25519 key is short, fast, and the modern default.

    terminal
    $ ssh-keygen -t ed25519 -C "you@host"
    # press enter to accept the default path, set a passphrase if you like
  2. Register the public key

    Run the POST /api/v1/ssh_keys request from the section above, reading ~/.ssh/id_ed25519.pub off disk.

  3. Rent a box

    Reference the returned id when you create a rental. IPX injects that key at boot, and you SSH straight in.

    terminal
    # once the rental is active_connected, the connection string lands you on the box
    $ ssh -p 20137 root@gpu.ipxtechholding.com
    root@gpu:~# nvidia-smi

Keys you register are reusable. Register once and every future box trusts the same key, so step 1 and step 2 are a one-time setup.

Next steps