Connecting & keys
The same key reaches your outposts: ssh <name>@ironwire.sh opens a shell on your own hardware, if you offered one when you linked it.
Your SSH key is your login. No passwords. Every device is another key on your account, and a passkey is one more way in.
How authentication works
ironwire identifies you by the SSH public key your client presents. No username/password step: the first key you enroll becomes your account, and every command and shell after that is authorized by whichever of your keys is connecting. No key yet? Make one and reconnect:
$ ssh-keygen -t ed25519
Connecting without any public key gets a short message telling you exactly that.
Enrolling
Enrollment binds a key to an account, so it always happens from the device whose key you're enrolling.
ssh
Connect with a key ironwire hasn't seen before:
$ ssh dashboard@ironwire.sh this SSH key isn't linked to an account yet. [e] log in to existing account (passkey) [s] subscribe and create an account [c] enter an invite code [l] link this device to an existing account [q] quit
dashboard
This screen is the dashboard's enrollment flow; it appears automatically when your key is unknown. Press e if you signed up on the web, s to subscribe, c to use an invite code, or l to link this device to one you already have.
Press s to subscribe: accept the terms of service, pick a handle, and pay from the link it shows. Invited? Press c and paste the invite code from your email; it is checked straight away, works once, and the account it creates is free while we test. Press l instead to add this device to an existing account (see adding a device below). Three failed attempts (a bad invite code or wrong link code) and the session disconnects; reconnect to try again.
When signups are closed for a while, or the fleet is full, s is replaced by w join the waitlist: leave an email and we'll let you know when we're taking new accounts.
Log in to existing account
Signed up on the web, so your account has a passkey but no SSH key yet? Connect with the key you want to use and press e. The screen shows a link, a QR code of it, and this key's fingerprint:
signed up on the web? open this link and approve this key with your passkey: ▸ https://ironwire.sh/approve?c=7C1E09A4D3B25F68 this key: SHA256:xT3pLm9aZcVdE0j…
Open the link (scan the QR with your phone if the passkey lives there), check the page shows the same fingerprint, and press Approve with passkey. The key joins the account that passkey belongs to, and the terminal continues straight into your dashboard. Deny closes the request and adds nothing. A request expires after 5 minutes; press e again for a new one.
Enrollment is interactive only. Running a one-shot command with an unknown key is refused with a hint to sign up via ssh dashboard@ironwire.sh.
Once enrolled you land straight in the dashboard. Getting started takes you through your first machine.
Handles
Your handle is your account's permanent name: lowercase, starting with a letter, 2 to 31 characters from a-z, 0-9 and -. It can't be changed later, and some names (like admin or www) are reserved.
The handle appears in every machine URL. A machine named web owned by alice is served at:
https://web-alice.ironwire.xyz
Managing your keys
List your keys with the keys command. Each line shows the key's fingerprint (truncated), its label, and the date it was added. Keys you enrolled or linked yourself have no label (shown as —); labels are set automatically for machine keys.
ssh
$ ssh dashboard@ironwire.sh keys SHA256:gNfR8u2kQvW5mB1… — 2026-07-14 SHA256:xT3pLm9aZcVdE0j… — 2026-07-30
dashboard
Press a for your account, open Devices: same list, with name, fingerprint, and date added.
Adding a device
Second machine (new laptop, work desktop)? Link its key to your account with a one-time code. Generate the code from a device that's already logged in:
ssh
$ ssh dashboard@ironwire.sh link device link code: 3F9A1C77B2E04D58 (valid 5m0s) on the new machine run: ssh dashboard@ironwire.sh then choose "link a device" and enter the code
dashboard
Press a for your account, go to Devices, press l to generate a code.
On the new device, connect with its own SSH key, press l at the enrollment screen, enter the code. Codes are 16 hex characters, single-use, and expire after 5 minutes. Lapsed? Run link again for a fresh one.
Removing a key
Remove a key with unlink and a unique prefix of its fingerprint. No match gets no key matching "<prefix>"; more than one match, ambiguous prefix "<prefix>" (matches N keys): add more characters.
ssh
$ ssh dashboard@ironwire.sh unlink SHA256:gNfR removed key
dashboard
Press a for your account, open Devices, select the key, press x.
you can't remove your only way in — add another key or passkey first): it would lock you out. Your keys and your passkeys both count, so with a passkey on the account you may remove your only key.Passkeys
A passkey signs you in to the ironwire app and approves a new SSH key (see log in to existing account). An account made on the web starts with one; add one to any account from the dashboard:
dashboard
Press a for your account, open Passkeys, press a. Open the link it shows in a browser, or scan its QR code with your phone, and create the passkey there; give it a name if you like. The list shows each passkey's name, when it was added and when it was last used. Select one and press x to remove it.
The link is single-use and expires after 5 minutes; press a again for a fresh one.
Checking who you are
Not sure which account a key is tied to? Ask:
ssh
$ ssh dashboard@ironwire.sh whoami you are alice
dashboard
Connect with ssh dashboard@ironwire.sh. Dashboard opens? The key is enrolled, and the account screen (a) shows your handle.