# SSH (/academy/ssh)



SSH is a locked phone line to a computer you are not sitting at.

Not screen sharing. No tiny laggy desktop. You type on your laptop. The command runs on theirs. Text goes out. Text comes back.

```bash
ssh user@host
```

A key ([secret](/academy/secret)) proves you. Their [CLI](/academy/cli) is now yours. That is how you read [logs](/academy/log) on a [server](/academy/server) without flying there.

**Why agents made this ordinary**

Before [agents](/academy/agent), SSH felt like a party trick. If you wanted a machine, you sat in front of it. Now the work often lives on a [headless](/academy/headless) box that stays awake while you sleep. You start a [job](/academy/job) from one laptop, check it from another, peek at the result from your phone. SSH is the line that makes "which computer should run this" a real question.

You are not "inside" the machine. You are sending typed instructions through a locked door.

**Two things, then you're in**

* An address: hostname, IP, or a private network name.
* Proof: usually an SSH key. Safer than a password you type every time. Don't paste the private file into chat. Don't commit it. Rotate it if it leaks.

Once that exists, you can alias the whole thing down to one word in your SSH config. The magic is boring config, not a new command.

If a dashboard can do the job, use the dashboard. SSH is a master key. Keep it private.

At a hackathon you may never need it. The [builder](/builder)'s [deploy](/academy/deploy) target already has a URL and logs in a browser. SSH shows up when you own the box: a VPS, a mini under the desk, an always-on agent you reach from the CLI.

**What this unlocks**

Once the line works, a headless machine stops being abstract. It's a computer you talk to in text. An always-on agent is a [process](/academy/process) you can reach. Logs are files you can ask for from another room. You stop asking "which chair am I in" and start asking "which machine should do the work."
