← Back to docs

SSH Connection

Connect to your server with SSH key management and troubleshooting.

demo
Demo: SSH Connection

How getbot connects

getbot uses SSH to manage your server — installing Incus, creating containers, deploying bots. All communication happens over your existing SSH connection; getbot doesn't run any background daemons or open additional ports on your machine.

SSH key auto-generation

If you don't provide an SSH key path during setup, getbot auto-generates an ed25519 key pair at ~/.getbot/id_ed25519. It then prints the exact command to copy the key to your server:

Generated SSH key: ~/.getbot/id_ed25519
Copy it to your server:
  ssh-copy-id -i ~/.getbot/id_ed25519 root@203.0.113.10

Run that command, enter your server password once, and all future SSH connections use the key. getbot saves the key path to your config so you don't need to specify it again.

Connection verification

The setup wizard verifies your SSH connection immediately — before asking for your AI provider or bot details. If the connection fails, you fix it right away instead of filling out a form and discovering the problem at deploy time.

Troubleshooting

When SSH fails, getbot classifies the error and tells you exactly what to do:

  • Permission denied — your key isn't on the server. Run ssh-copy-id -i <key> <user>@<host>, or check that your key file has chmod 600 permissions.
  • Connection refused — SSH isn't running on the server. Check sudo systemctl status sshd and make sure port 22 is open in your firewall.
  • Host key verification failed — the server's fingerprint changed (reinstall, new IP). Run ssh-keygen -R <host> to clear the old fingerprint, then reconnect.
  • Timed out — can't reach the server. Verify the IP address is correct and port 22 is open (ufw allow 22 or equivalent).
  • Too many authentication failures — SSH is trying too many keys. Specify your key explicitly with --ssh-key, or run ssh-add -D to clear the agent.

Key requirements

  • Key type — ed25519 (recommended) or RSA. getbot auto-generates ed25519.
  • Permissions — private key must be 0600 or 0400. getbot rejects world-readable keys.
  • SSH user — defaults to root. The user needs sudo privileges for Incus installation.