...
Back

Getting a Server for AgentAura: SSH, Keys and Tokens

Any Ubuntu x86 VPS works with AgentAura over SSH. What the server needs, how to make a key it accepts, and when an API token is used.

Getting a Server for AgentAura: SSH, Keys and Tokens

Getting a Server for AgentAura: SSH, Keys and Tokens 🔑

AgentAura installs a private AI agent onto a Linux server that you own. If you have never rented a server before, the hard part is not the agent. It is the half hour in a cloud console: which account, which image, which size, which key, which user, which firewall rule.

This guide is the part that applies to every provider. It explains the two ways AgentAura gets onto a server, what that server must have, and how to make an SSH key that AgentAura accepts. At the end there is a step-by-step guide for each of eight providers.


🧭 Two Ways onto a Server

PathWhere it is offeredWhat you give AgentAura
My Server (over SSH)Every AgentAura client: web, iPhone and iPad, Mac, Android, Windows, LinuxThe server's IP, a login user, and a password or SSH private key
Provider API tokenSome native apps: Hetzner (Apple apps and the Windows app), Vultr (Windows app)An API token from your own account; the app creates the server there

My Server works with every provider, because all it needs is SSH. You create the server in the provider's console, then hand AgentAura the address and a credential. This is the path the rest of this guide assumes.

The token path saves you the console, but only for the providers your app lists. The server is still created in your account and billed to you by the provider. If your app does not show a provider option, use My Server. For DigitalOcean, Linode, AWS, Google Cloud, Azure and Oracle, AgentAura does not use their API keys at all. Creating one "because a tutorial said so" only adds a credential you then have to protect.


🖥️ What the Server Needs

RequirementWhy
Ubuntu 24.04 LTS (22.04 also works)The installer uses apt. Other families such as Amazon Linux, Oracle Linux or Rocky fail.
x86_64 (amd64)The runtime is built for amd64. ARM instances (Graviton, Ampere, Axion, Cobalt and similar) do not work, even though they are often the cheaper or free option.
About 2 vCPU and 4 GB RAMOur own Hetzner option starts there. You are not running a model, so no GPU; but 1 GB "micro" instances are too tight to recommend.
root, or a user with passwordless sudoThe installer writes system services. Cloud default users such as ubuntu or azureuser normally have passwordless sudo.
A public IPv4 address and outbound internetAgentAura reaches the server over SSH, and the installer downloads packages.
Nothing else on itIsolation is the reason to use a separate server at all.

The background on sizing is in What Kind of Server Do You Need to Run a Private AI Agent?.


🔑 Make an SSH Key That AgentAura Accepts

A password works on providers that give you one. A key is safer, and on AWS, Google Cloud, Azure and Oracle it is the normal way in. Make a new key just for this server:

# macOS or Linux
mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/agentaura -N "" -C "agentaura"
# Windows 10 or 11, in PowerShell. When asked for a passphrase, press Enter twice.
New-Item -ItemType Directory -Force "$HOME\.ssh" | Out-Null
ssh-keygen -t ed25519 -f "$HOME\.ssh\agentaura" -C "agentaura"

That creates two files:

  • agentaura.pub is the public key. You give this one to the cloud provider.
  • agentaura (no extension) is the private key. You paste this one into AgentAura.

Four rules decide whether AgentAura accepts the key:

  1. Paste the private key, and all of it. That includes the -----BEGIN OPENSSH PRIVATE KEY----- and -----END OPENSSH PRIVATE KEY----- lines. The .pub file is not a login credential.
  2. No passphrase. AgentAura has no passphrase field, so a key protected by one will not log in. That is why the commands above leave it empty, and why the key should be used for this server only.
  3. OpenSSH or PEM format. A key a provider generated for you as a .pem download (AWS, Azure and Oracle do this) can be pasted as it is. A PuTTY .ppk file cannot: open it in PuTTYgen and use Conversions → Export OpenSSH key first.
  4. ed25519, RSA or ECDSA. All three work. ed25519 is the short, modern choice.

To show the private key so you can copy it:

cat ~/.ssh/agentaura                   # macOS / Linux
Get-Content "$HOME\.ssh\agentaura"     # Windows PowerShell

AgentAura stores this key so it can manage the server later. That is the practical reason for a dedicated key: if you ever need to revoke it, you remove one key from one server, and nothing else you log into is affected.


🔓 Leave SSH Reachable, and Only SSH

Two firewall mistakes account for most failed first deployments.

Restricting SSH to "My IP". Several consoles suggest it. But AgentAura connects to your server from its own cloud, not from your computer, and not only during the install: viewing logs, restarting, reconnecting a model credential, adding agents and updating all happen over SSH. A rule that only admits your home address blocks every one of those. Leave the SSH port open to the internet and rely on key authentication, which is what makes an open SSH port safe.

Opening other ports "just in case". Nothing else needs to be reachable. The installer sets up an outbound Cloudflare Tunnel, and your clients reach the agent through it. Extra inbound ports add exposure and fix nothing.


✍️ What to Type into AgentAura

FieldDefaultWhat to enter
Server IP—The server's public IPv4 address, from the provider's console
Login userrootSee the table below
Password or SSH keyPasswordThe password, or the full private key text
SSH port22Change it only if you changed it on the server

The login user depends on the provider's image:

ProviderUsual login user for Ubuntu
Hetzner, DigitalOcean, Vultr, Linoderoot
AWSubuntu
Google Cloudthe username attached to the SSH key you added
Azurethe admin username you chose (the portal suggests azureuser)
Oracle Cloudubuntu

⏳ Before You Press Deploy

Log in once yourself, with the same user and key you are about to give AgentAura:

ssh -i ~/.ssh/agentaura root@203.0.113.10
# Windows PowerShell: ssh -i "$HOME\.ssh\agentaura" root@203.0.113.10

Use your server's address and the right user from the table. A server that the console calls "running" may still be booting, or running its first package upgrades, which lock apt for a few minutes. If your own login works and the prompt comes back promptly, start the deployment in AgentAura and watch its output: each step is reported, and a failure says which step and why. The quick start covers the model credential you choose next.


📚 Step-by-Step, by Provider

  • Hetzner Cloud: SSH setup, plus the API token some apps use to create the server for you
  • DigitalOcean: a Droplet with your key, logged in as root
  • Vultr: SSH setup, plus the API key and its access-control list for the Windows app
  • Akamai Cloud (Linode): a Linode with your key, logged in as root
  • AWS: EC2, key pairs, and the security-group rule people get wrong
  • Google Cloud: Compute Engine and SSH keys in metadata
  • Microsoft Azure: a Linux VM with a generated key pair
  • Oracle Cloud: why the Always Free ARM instance will not work, and what will

Other providers work the same way. If they give you an x86 Ubuntu server with a public IP and SSH, use My Server.


💰 Two Bills, and the One Step People Forget

The server is billed by your provider from the moment it exists until you delete it. Model usage is billed by whichever AI provider's credential you give the agent. They are separate.

Removing an agent in AgentAura does not delete the server, and neither does a failed deployment. When you are done, delete the server in the provider's console. On most providers a stopped server still costs something: at least its disk, and sometimes the full price.