# SSH access

Pyvolt lets you SSH straight into your own servers and apps. You add your SSH public key once, and Pyvolt installs it on every server in your account - so you can drop into a shell whenever you need to.

You connect as the **`pyvolt`** user. That's the app-owner account (it has sudo), so you get real access to the box and to every app's files, without logging in as `root`.

## Add your key

1. Go to **Account → SSH Keys**.
2. Paste your **public** key (the contents of your `.pub` file - never the private key), give it a name, and **Add key**.

Pyvolt pushes it to all your ready servers within a few seconds, and installs it automatically on any new server you provision. Add as many keys as you like (one per machine is common); remove one and it's pulled from every server just as fast.

## Don't have a key yet?

Generate one on your machine, then copy the **public** half:

```bash
ssh-keygen -t ed25519 -C "you@example.com"
cat ~/.ssh/id_ed25519.pub
```

Press Enter through the prompts to accept the defaults. On Windows, run the same in PowerShell or WSL. Paste the output of the `cat` line (it starts with `ssh-ed25519 …`) into the form.

## Connect

Into a **server** - the command is shown on the server's Overview:

```bash
ssh pyvolt@YOUR_SERVER_IP
```

Into an **app** - connect and change into its directory:

```bash
ssh pyvolt@YOUR_SERVER_IP
cd sites/your-app-domain
```

### With the CLI

The [Pyvolt CLI](cli.md) resolves the host for you (add `--app <domain>` to land straight in that app's directory):

```cli
pyvolt ssh my-server --app my-app.com
```

## Notes

- Only the **public** key is ever stored - Pyvolt never sees or holds a private key.
- Keys live at the account level and apply to all your servers. Removing a key revokes it everywhere.
- If your server sits behind a deny-all firewall you manage yourself, allow port 22 from your own IP (Pyvolt's own access is separate - see the server's Networking tab).
