ironwire / documentation

connecting & keys

your SSH key is your login. no passwords. every device is another key on your account.

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.
  [c] create a new account
  [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 c to create an account, or l to link this device to one you already have.

press c to create a new account. enter the invite password (ask an admin). pick a handle. press l instead to add this device to an existing account (see adding a device below). three failed attempts (wrong invite password or wrong link code) and the session disconnects; reconnect to try again.

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
note pick a handle you're happy to see in URLs. it's part of your machines' public addresses.

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

cli

$ ironwire keys
SHA256:gNfR8u2kQvW5mB1…  —            2026-07-14
SHA256:xT3pLm9aZcVdE0j…  —            2026-07-30

dashboard

press a for account settings, open Devices: same list, with name, fingerprint, and date added.

adding a device

<SCREENSHOT: account settings → Devices screen with a freshly generated link code>

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

cli

$ ironwire link
device link code: 3F9A1C77B2E04D58  (valid 5m0s)

dashboard

press a for account settings, 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

cli

$ ironwire unlink SHA256:gNfR
removed key

dashboard

press a for account settings, open Devices, select the key, press x.

note removing your last key is refused (cannot remove your only key): it would lock you out. link a new device first, then unlink the old one.

checking who you are

not sure which account a key is tied to? ask:

ssh

$ ssh dashboard@ironwire.sh whoami
you are alice

cli

$ ironwire whoami
you are alice

dashboard

connect with ssh dashboard@ironwire.sh. dashboard opens? the key is enrolled, and account settings (a) shows your handle.