let machines = { renard = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINs2TTjnQvDNr/S3lPLWYOnZi00YIMrRUDH8cpBz1k1m"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ/qDL7+86+0H6NkPs/w4GYiWQwT/4YAx9O2J7sLkKmf"; }; lapin = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIzDyaafULcgTuFca51NNgYAzZ28RFDQwVWavRpnY5c+"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGMD/EN9v8YgHOu4YG74Q+xvwjCdxbMIZjnQcUXi0QhZ"; }; taupe = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBv7uF/8uWEMO0RpWnUhhx/wcoEWyIGGOoBxk43vxh2"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJG9kD3fE28ZOc4ISUnfZbSQFOwI1Bg3H2MvrhpPK3YT"; }; corsac = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDlqytVSNMFAfbB+rdiNktv3WYViVBMeK7zUO2Pjfii+"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHxghVX0Oq+eHklg/e7s/qhC8CK8PLUgvpLk2G53xEjK"; }; fourmi = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOfbbNX3QvNPH5TKQ0nZcBLzFicmzxmfHjPYHsqiJh6s"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIClKCe1ziELUE1N+65xdpctJT1rpn5OgJd0NWNg6bW6J"; }; zibeline = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOLLEV06Tj36gqxMHrBNK7pb7VuSv4dDdKQH9Gvf4gDt"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBMUaDM6HdFXCSGzOR9KekbyBqog7blRiR6kEsiHJinm"; }; taureau = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAeTfA4Y4l8o7v5SB+QwmsEMFNd9jIFymMtSbVV30iBZ"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL8oHwSbIkL/GWkeLyCPZex5f432dxEy3WHDmjoh0gRl"; }; }; desktops = { bismuth = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEK96G1n31aJsZOrux3BKM0ztzi/SFAVHn0MsGkPDdqY"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEP1Q8/07PD5AXghM7cd9Uf54YY8rkuBHfllr1Kzxh10"; }; graphite = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEDujTul5wWyGnidLnNuJDRze0Up29l2cDpyKdmvW2Ls"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHd+EvfxJC1rZbeI6hUq5tPpy8b3Xio02orgMBLwPU2l"; }; moissanite = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINTG/DHTkuQgwLakSBuXx3XBe+WjUmDlSgLBGzldx/ZD"; system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPy6IFaPkJMT89s1PZ/ekFGDKF2kvsRuAUB5NTtYQPSL"; }; # this one is just a phone :3 anise = { user = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMkdZb6fmfj8fHQUCigTz1x503nRqyokhxYC4RrgA3dZ"; system = ""; }; }; keysOfType = type: from: with builtins; catAttrs type (attrValues from); machinesWithKey = type: from: builtins.mapAttrs (m: k: k.${type}) from; in rec { inherit machines; # keys of admin accounts on network machines allAdmins = keysOfType "user" machines; # keys of user accounts on desktop machines allDesktopUsers = keysOfType "user" desktops; # keys of all users, both on desktop and server allUsers = allAdmins ++ allDesktopUsers; # system host keys of all network machines allSystems = keysOfType "system" machines; # all keys, whether system or user all = allUsers ++ allSystems; # user keys per machine user = machinesWithKey "user" (machines // desktops); # system keys per machine system = machinesWithKey "system" (machines // desktops); }