Skip to content

Add an SSH key pair to your account

How-to · Updated Jun 2026

Coming from another cloud?

▸AWS·EC2 Instances

EC2 Instanceshigh

  • Uses EC2 RunInstances API instead of Nova servers.create.
  • Requires predefined instance type selection.
  • Supports per-second On-Demand billing and Spot/Reserved options.
  • Includes hibernation state not standard in OpenStack.
AWS docs ↗
▸Azure·Virtual Machines

Virtual Machineshigh

  • Uses Azure Resource Manager (ARM) REST API at /providers/Microsoft.Compute/virtualMachines instead of OpenStack Nova API at /v2.1/servers.
  • Tightly integrated with Azure services like Azure Active Directory for authentication, unlike OpenStack's Keystone.
  • VM creation requires specifying size from predefined series with hardware-specific features (e.g., AMD/Intel/ARM), not custom flavor configs.
  • Billed per second with complex pricing tiers based on series/reservation options, vs OpenStack's typically hourly or usage-based.
Azure docs ↗
▸DigitalOcean·Droplets

Dropletshigh

  • API surface is DigitalOcean’s proprietary REST/CLI/Terraform tooling rather than OpenStack Nova/Neutron/Glance APIs (Droplets are managed via DigitalOcean UI/CLI/API/Terraform).
  • Billing is usage-based with per-second billing (60-second minimum and monthly cap) rather than the typical per-hour, quota-based charge model users often see in OpenStack-based clouds.
  • Droplets include a bundled outbound transfer allowance with each plan (starting at 500 GiB/month) rather than a separate bandwidth quota/metering model users often encounter in OpenStack deployments.
  • Droplets are described as Linux-based VMs on virtualized hardware with local SSD storage, whereas OpenStack deployments commonly expose distinct block storage (Cinder) and image services (Glance) and may not bundle bandwidth/monitoring/firewalls into the instance offering.
DigitalOcean docs ↗
▸Google Cloud·VM instances

VM instanceshigh

  • Uses REST API 'instances.insert' instead of Nova 'servers.create' with different auth via service accounts vs Keystone.
  • Supports bare metal instances (no hypervisor), not in standard OpenStack Nova.
  • Network interfaces tied to VPC subnets; differs from Neutron ports/floating IPs.
Google Cloud docs ↗
▸Hetzner·Cloud Servers

Cloud Servershigh

  • Servers provisioned individually via Hetzner API (hcloud), not OpenStack Nova flavors; fixed instance types like CX11 (1 vCPU, 2GB RAM, 20GB NVMe).
  • No flavor customization; choose from predefined shared/dedicated vCPU series.
  • Billing hourly with monthly cap per server (e.g., €3.29/mo cap for CX11), charged even when powered off until deleted, unlike typical OpenStack stop-to-pause billing.
  • Custom REST API at api.hetzner.cloud/v1/servers instead of OpenStack Nova /v2.1/servers (different auth, payloads, response formats).
Hetzner docs ↗

Add an SSH key pair to your account

One of the first things to do in Quake AI is to set up an SSH key pair.

When working with virtual machine (VM) instances in Quake AI, you'll need a way to access the virtual machines from your local computer. One common way to do this is by using an SSH key pair. A key pair is a set of public / private digital keys used to verify your identity. You store the private part of the key pair locally in a secure location, but you'll share the public part of the key pair. A key pair can be generated and stored on your local computer, and you can also use the cloud console interface to generate one.

SSH is an encryption protocol that enables secure communication between systems. You'll use an SSH client on your local computer to connect with a virtual machine.

Once you add a public key or create a key pair in Quake AI, it is associated with your account and you can use it across different projects.

For SSH basics on Windows and macOS, you can consult these vendor tutorials or other resources online:

For managing key pairs in the console, see the Compute console: Key Pairs section in the Cloud Console Guide.

Upload your public key#

Follow these instructions if your local computer uses macOS.

Key pairs are typically stored in the .ssh directory, which is a hidden directory on your computer.

You can access this directory from your /home/<user>/.ssh. If you’ve never created a key pair, the directory may not yet exist.

  1. Open the Terminal application on your computer.
  2. Go to the .ssh directory by typing:
bash
cd .ssh
ls

Look for the files id_ed25519 and id_ed25519.pub. If they don’t exist, go to the next step to create them.

Generate a key pair (macOS)

  1. Open the Terminal application.
  2. Go to the .ssh directory by typing:
bash
cd .ssh
  1. Type the following in the terminal:
bash
ssh-keygen -t ed25519
  1. When prompted, press 'Enter' instead of providing a file name.
  2. Optionally enter a passphrase to secure access to the key.
  3. A private key is written to /home/user/.ssh/id_ed25519 and a public key written to /home/user/.ssh/id_ed25519.pub. Type the following to confirm the files exist:
bash
ls
  1. Type the following in the terminal.
bash
ssh-add id_ed25519

Upload a public key (from macOS)

  1. In Quake AI, select Compute > Key Pairs, then select Create Keypair to open the Create Keypair dialog.
  2. In the Create Keypair dialog, select Import Keypair for the Create Type.
  3. For the name, use id_ed25519.
  4. Open the Terminal application on your computer.
  5. Type the following to copy the public key to your clipboard.
bash
cat ~/.ssh/id_ed25519.pub | pbcopy
  1. In Quake AI console, paste the public key into the Public Key field. Make sure to delete any trailing spaces after you paste the key. If the create operation fails, try again, look for trailing space, and remove it so the line ends with the last character of the key.
  2. Select OK to finish.

You'll now see the key pair in the dashboard. Your key pair is associated with your user account in Quake AI, so you’ll be able to use it across projects.

You'll now see the key pair in the dashboard. Your key pair is associated with your user account in Quake AI, so you’ll be able to use it across projects.

Generate a key pair in the console#

  1. In Quake AI, select Compute > Key Pairs, then select Create Keypair to open the Create Keypair dialog.
  2. In the Create Keypair dialog, select Create Keypair for the Create Type.
  3. Provide a name for the key pair.
  4. Select OK. The key pair <NAME>.pem file will download to your local computer. The .pem file contains your key pair as a certificate file.

If your local computer uses macOS, follow these instructions to use the key pair locally.

  1. Open the Terminal application.
  2. Go to the directory containing the downloaded .pem file.
  3. Type the following in the terminal.
bash
ssh-add <NAME>.pem

Next steps#

You can use different key pairs for different use cases. The key pairs will follow you across projects, so you don't need to generate new keys if you switch.

If you create a virtual machine, you'll be asked to provide a key pair as a part of the creation process. If you've followed the steps in this example, you'll have a key pair ready for use.

See also:

Usage Guidelines

The sample code, software libraries, command line tools, proofs of concept, templates, and other related technology on this page (including any of the foregoing that is provided by Quake AI personnel) is provided to you as Quake AI Content under the Quake AI Customer Agreement, or the relevant written agreement between you and Quake AI (whichever applies). Do not use this Quake AI Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the Quake AI Content (such as sample code) as appropriate for production grade use based on your specific quality control practices and standards. Deploying Quake AI Content may incur Quake AI charges for creating or using Quake AI chargeable resources, such as running Compute instances or storing data in Object Storage. Your use is also subject to the Acceptable Use Policy.

For the full policy, see Usage Guidelines.

Last validated: 04.06.2026

Was this page helpful?