Skip to content

Connecting via SSH

Every pod is a full Linux system you can log into. SSH works the way you'd expect, with one twist: from the public internet you connect on a mapped external port, not the standard port 22.

Getting your credentials

Open the pod in the console and look at the Connection Strings tab. You'll see:

  • The pod's public host (and public IP)
  • The login username (ubuntu for Ubuntu pods, root for database pods)
  • The external port assigned to SSH (something like 3001, forwarding to internal 22)
  • The pod's private host (used inside the same network)

Passwords, keys, and how you actually get in

The cleanest path is to add an SSH key when you create the pod - paste a public key or pick a saved one. Then you just log in with your key and there's no password to manage.

If you don't add a key, an Ubuntu pod shows you a one-time login password at creation. It's displayed once and never again, so copy it right then.

Instance pods can't reset their login password

There's no "reset password" for Ubuntu pods. If you lose the one-time password and never added a key, don't panic - use the browser Shell to get in (it doesn't need the password), then add your public key to ~/.ssh/authorized_keys. From then on you log in with the key. Reset password exists only for database pods (see below).

Connecting from the public internet

Use the external port from the Connection Strings tab with ssh -p:

bash
ssh -p 3001 ubuntu@your-pod.microapps.io

(Swap in the external port and public host shown on your pod.) Enter your key passphrase, or the login password if you're using one.

Adding an SSH key to an existing pod

If you didn't add a key at creation, add one now:

  1. Get in once - with the login password, or via the browser Shell.
  2. Append your public key:
    bash
    echo "ssh-ed25519 AAAA... you@laptop" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
  3. From now on, ssh -p <external-port> ubuntu@<public-host> uses your key.

Connecting from another pod on the same network

When two pods share a private network, they reach each other directly on internal ports (no mapping) by private host. So from inside one pod, SSH to another is just:

bash
ssh ubuntu@other-pod

other-pod is the private host shown in the other pod's Connection Strings tab. Port 22 is the default - no -p needed. Same goes for other services: MySQL on 3306, HTTP on 80, your app on 3000. Same-network neighbours use the real internal port.

Resetting a database password

Database pods only. If you lose a database pod's password, open it in the console and click Reset password - you'll get a fresh one. (Via the API: POST /api/pods/:id/reset-password.) This does not exist for Ubuntu pods.

Locking SSH down to your IP

You probably don't want SSH open to the world. See Networks and firewalls - a firewall that allows only your home or office IP closes every public port, SSH included, to everyone else. (Firewall rules are per-IP, not per-port.)

When SSH isn't an option

On a network that blocks outbound SSH? Use the browser Shell instead. It runs over the same connection as the console, so port mapping doesn't apply - it just works. (Ubuntu pods only.)

Built for the long tail.