Accounts and logins at welland¶
You look after access to the welland gateway and fleet: who can log in, how, and how to change it. Each task has its own page, listed under The tasks.
Who can log in to the welland gateway (tweed, inventory host fpgas.online)
and to the netbooted Pi fleet, with what, and which role and variable decide
it. Everything on these pages is what main configures. It was deployed to tweed
(main 4de0b24) and checked live on 2026-09-29:
a password-only login to tweed gets
Permission denied (publickey);ansible(automation key), andadminandtim(GitHub keys), log in and getsudo -nto root, andcarlholds exactly his GitHub key;the jump account refuses commands, and its
authorized_keysholds only Tim’s and Carl’s GitHub keys (the Launchpad lines are gone);through
-J pi@tweed,pi@androot@a board work with Tim’s key, andansible@a board works with the automation key, includingsudo;the jump account’s own key logs in to
pi@a board.
No secrets are recorded here. The only private material involved is the
fpgas.online-ansible automation key (vaulted as
vault_ansible_ssh_private_key in
host_vars/fpgas.online.yml)
and the vaulted pi_pw. The pi password is public by design: the board
pages on fpgas.online publish it, and the boards are ephemeral and isolated
per port.
At a glance¶
Where |
Login methods |
Who |
|---|---|---|
tweed |
SSH public key only ( |
|
Pi NFS root, every board |
public key, plus a password for |
|
The Pis are not routable from outside tweed, so every login to a board goes through tweed.
The tasks¶
The gateway, tweed: its accounts, keys, the jump account and sshd.
The Pi NFS root: the boards’ accounts, the
pipassword, the keys and the host key, and why a key change reboots the fleet.
Logging in: the command for each account, from inside the site, over IPv6 or through the upstream router.
Adding or removing a person, converging the change, and rotating the automation key.
Where the keys come from, and what a converge does when GitHub is down.
Verifying: which checks in
verify-server.ymlandverify-pi.ymlcover access.