From 475fe50d1977aeb6b36aa454fb76e68955a1087a Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Sat, 25 Jul 2026 15:18:15 -0500 Subject: [PATCH] Expand Nebula * Add Nebula to Kubernetes node * Update k3s nodes to support nebula keepalived * Move external IPs to a separate structure --- home/baseline/nushell/functions.nu | 35 +++++++- hosts/unstable/genesis/networking.nix | 2 +- modules/nixos/kubernetes.nix | 56 +++++++++--- network.json | 123 +++++++++++--------------- secrets/nebula/isaiah.crt | 8 +- secrets/nebula/isaiah.key.age | Bin 2209 -> 2209 bytes secrets/nebula/jeremiah.crt | 8 +- secrets/nebula/jeremiah.key.age | Bin 2209 -> 1989 bytes secrets/nebula/zeke.crt | 8 +- secrets/nebula/zeke.key.age | 74 +++++++--------- 10 files changed, 173 insertions(+), 141 deletions(-) diff --git a/home/baseline/nushell/functions.nu b/home/baseline/nushell/functions.nu index cd17999..70a4672 100644 --- a/home/baseline/nushell/functions.nu +++ b/home/baseline/nushell/functions.nu @@ -16,6 +16,38 @@ def nebulaIps [] { open /etc/nixos/network.json | get hosts | items { |h, e| $e.nebulaIp? } | where $it != null | sort } +def genNebulaCert [ --ips: string, --name: string ] { + let public = $'~/SynologyDrive/nebula/($name).key.pub' | path expand + let private = $'~/SynologyDrive/nebula/($name).key' | path expand + let cert = $'/etc/nixos/secrets/nebula/($name).crt' + let ca_cert = '~/SynologyDrive/nebula/ca.crt' | path expand + let ca_key = '~/SynologyDrive/nebula/ca.key' | path expand + + # Generate public key if there isn't one already + if ( not ($public | path exists) ) { + nebula-cert keygen -out-key $private -out-pub $public + } + # Clear old cert if there is one + if ( $cert | path exists) { + rm $cert + } + + # Create and sign certs + (nebula-cert sign + -ca-crt $ca_cert + -ca-key $ca_key + -name $name + -networks $ips + -out-crt $cert + -in-pub $public + ) + + # Agenix update + cd /etc/nixos/secrets + cat $private | agenix -e $'nebula/($name).key.age' +} + + def rebuild [ $target: string = "switch" ] { if (uname | get operating-system) == "Darwin" { sudo darwin-rebuild $target @@ -39,7 +71,8 @@ def deploy [ $host: string, $build: string = "" ] { if $buildhost == "linode" or $buildhost == "genesis" { $buildhost = "isaiah" } - nixos-rebuild switch --sudo --use-substitutes --target-host $host --build-host $buildhost + colmena apply --on $host + #nixos-rebuild switch --sudo --use-substitutes --target-host $host --build-host $buildhost } def ff [ $file: string ] { diff --git a/hosts/unstable/genesis/networking.nix b/hosts/unstable/genesis/networking.nix index bf52637..bb63560 100644 --- a/hosts/unstable/genesis/networking.nix +++ b/hosts/unstable/genesis/networking.nix @@ -130,7 +130,7 @@ in lib.mapAttrs (domain: net: { master = true; - file = makeZoneFile (lib'.hostsByNet net metadata.hosts) domain; + file = makeZoneFile (lib'.hostsByNet net (metadata.hosts // metadata.external)) domain; }) { "shire-zebra.ts.net" = "tailscale"; diff --git a/modules/nixos/kubernetes.nix b/modules/nixos/kubernetes.nix index 8d31678..3669fac 100644 --- a/modules/nixos/kubernetes.nix +++ b/modules/nixos/kubernetes.nix @@ -15,6 +15,8 @@ let sha256 = "sha256-Qs1qJmgZm8q9xZsORjT/N/wzpbWVVODXtzDpjnAYMuQ="; }; keepaliveIp = "10.42.5.1"; + nebulaName = "k3s.nebula.thehellings.com"; + nebulaIp = "10.157.100.1"; in { options.greg = { @@ -44,6 +46,13 @@ in }; config = lib.mkIf cfg.enable { + assertions = [ + { + assertion = config.greg.nebula.enable; + message = "Configure Nebula for this host, first"; + } + ]; + age.secrets = { bw_secret.file = ../../secrets/kubernetes/bw_secret.age; dendrite_key.file = ../../secrets/dendrite_key.age; @@ -97,6 +106,8 @@ in "--tls-san ${config.networking.hostName}.thehellings.lan" "--tls-san ${config.networking.hostName}.shire-zebra.ts.net" "--tls-san ${keepaliveIp}" + "--tls-san ${nebulaName}" + "--tls-san ${nebulaIp}" ]; manifests = { cert-manager.source = cert-manager; @@ -112,20 +123,37 @@ in keepalived = { enable = true; openFirewall = true; - vrrpInstances.kubernetes = { - interface = cfg.vipInterface; - priority = cfg.priority; - state = if (config.networking.hostName == "isaiah") then "MASTER" else "BACKUP"; - virtualIps = [ - { - addr = "${keepaliveIp}/16"; - dev = cfg.vipInterface; - } - ]; - virtualRouterId = 77; - extraConfig = '' - advert_int 1 - ''; + vrrpInstances = { + kubernetes = { + interface = cfg.vipInterface; + priority = cfg.priority; + state = if (config.networking.hostName == "isaiah") then "MASTER" else "BACKUP"; + virtualIps = [ + { + addr = "${keepaliveIp}/16"; + dev = cfg.vipInterface; + } + ]; + virtualRouterId = 77; + extraConfig = '' + advert_int 1 + ''; + }; + k3s-nebula = { + interface = "nebula0"; + priority = 1; + state = if (config.networking.hostName == "isaiah") then "MASTER" else "BACKUP"; + virtualIps = [ + { + addr = "${nebulaIp}/16"; + dev = "nebula0"; + } + ]; + virtualRouterId = 78; + extraConfig = '' + advert_int 1 + ''; + }; }; }; openiscsi = { diff --git a/network.json b/network.json index b3277a1..6d683dc 100644 --- a/network.json +++ b/network.json @@ -13,13 +13,6 @@ "ip": "10.42.1.17", "system": "x86_64-linux" }, - "chronicles": { - "ip": "10.42.1.4", - "pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEBecZUva9OnZuXLaBun6/1ITo5f9p0YMLPD+q0egLRS", - "external": true, - "ts": "100.119.228.115", - "aliases": ["s3"] - }, "exodus": { "ip": null, "pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFxmnCj2E9DxcnefPW+n4yCuLShxqr0p024riogdeXA3", @@ -35,15 +28,6 @@ "tags": ["router", "server"], "nebulaIp": "10.157.0.2" }, - "hermes": { - "external": true, - "ip": "10.42.1.18", - "mac": "BC:24:11:E4:72:AB", - "nebulaIp": "10.157.0.8", - "pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILFYyzz/9i5rXprCQj9IL1ulrbQ6E9BOSeOcvf4D/b0G", - "system": "x86_64-linux", - "tags": ["server"] - }, "hosea": { "ip": "10.42.1.7", "pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKLIwkTTXA56sUlUjEulXXZRvZy5H4a5ZwgKWLlpkQDz", @@ -52,10 +36,6 @@ "tags": ["server"], "nebulaIp": "10.157.0.3" }, - "icdm-root": { - "external": true, - "system": "x86_64-linux" - }, "isaiah": { "builder": true, "ip": "10.42.1.6", @@ -85,11 +65,6 @@ "tags": ["builder", "kube", "server"], "nebulaIp": "10.157.0.5" }, - "joel": { - "external": true, - "ip": "10.42.0.4", - "ts": null - }, "gregs-MacBook-Pro-16-inch-Nov-2024": { "external": true, "system": "aarch64-darwin" @@ -118,58 +93,10 @@ "external": true, "system": "aarch64-darwin" }, - "nas1": { - "aliases": [ "*.nas1" ], - "external": true, - "ip": "10.42.1.14", - "ts": "100.114.187.61" - }, "nixos": { "external": true, "system": "x86_64-linux" }, - "printer": { - "external": true, - "ip": "10.42.1.3" - }, - "proxmoxtemplate": { - "external": true, - "system": "x86_64-linux" - }, - "pve2": { - "external": true, - "ip": "10.42.1.15", - "system": "x86_64-linux" - }, - "pve2bmc": { - "derp": "10.42.2.129", - "external": true, - "mac": "00:25:90:4b:34:e8", - "ip": "10.42.6.2", - "system": "ipmi" - }, - "pve3": { - "external": true, - "ip": "10.42.1.16", - "system": "x86_64-linux" - }, - "pve3bmc": { - "derp": "10.42.2.181", - "external": true, - "ip": "10.42.6.3", - "mac": "00:25:90:4a:dc:2e", - "system": "ipmi" - }, - "pve4": { - "external": true, - "ip": "10.42.1.17", - "system": "x86_64-linux" - }, - "pve4bmc": { - "external": true, - "ip": "10.42.6.4", - "system": "ipmi" - }, "wsl": { "external": true, "system": "aarch64-linux" @@ -184,5 +111,55 @@ "tags": ["builder", "kube", "server"], "nebulaIp": "10.157.0.6" } + }, + "external": { + "chronicles": { + "ip": "10.42.1.4", + "pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEBecZUva9OnZuXLaBun6/1ITo5f9p0YMLPD+q0egLRS", + "ts": "100.119.228.115", + "aliases": ["s3"] + }, + "hermes": { + "ip": "10.42.1.18", + "mac": "BC:24:11:E4:72:AB", + "nebulaIp": "10.157.0.8", + "pubkey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILFYyzz/9i5rXprCQj9IL1ulrbQ6E9BOSeOcvf4D/b0G", + "tags": ["server"] + }, + "joel": { + "ip": "10.42.0.4" + }, + "k3s": { + "ip": "10.42.5.1", + "nebulaIp": "10.157.100.1" + }, + "nas1": { + "aliases": [ "*.nas1" ], + "ip": "10.42.1.14", + "ts": "100.114.187.61" + }, + "printer": { + "ip": "10.42.1.3" + }, + "pve2": { + "ip": "10.42.1.15" + }, + "pve2bmc": { + "ip": "10.42.6.2", + "mac": "00:25:90:4b:34:e8" + }, + "pve3": { + "ip": "10.42.1.16" + }, + "pve3bmc": { + "ip": "10.42.6.3", + "mac": "00:25:90:4a:dc:2e" + }, + "pve4": { + "ip": "10.42.1.17" + }, + "pve4bmc": { + "ip": "10.42.6.4" + } } } diff --git a/secrets/nebula/isaiah.crt b/secrets/nebula/isaiah.crt index 7c843f5..21f0602 100644 --- a/secrets/nebula/isaiah.crt +++ b/secrets/nebula/isaiah.crt @@ -1,6 +1,6 @@ -----BEGIN NEBULA CERTIFICATE V2----- -MIGloD+ABmlzYWlhaKEHBAUKnQAEEIUEac2MaYYEa668pYcgg4lMYGB2VakRFO6b -K9vHSLzjZpuqhBVQ7MReOwUHQKyCIBv+1Lr/E3Q6d99laLGdXRTss2SIL4OGBp8z -qqfEsAMpg0CyDSEYuL8GaHQq708GbCxhxFifCZaRTB+ReGBScmhT9XhIwSLHRRZJ -1TmoY4QvrdPOS3NAWvlawk/JUqN7SWQL +MIGsoEaABmlzYWlhaKEOBAUKnQAEEAQFCp1kARCFBGplFeuGBGuuvKWHIIOJTGBg +dlWpERTumyvbx0i842abqoQVUOzEXjsFB0CsgiDoVBJV1aKswyKPq1E4ZH9H21tx +2IB0pKfEqNVdOLVedYNAjZSaY/IreMGnplY6txmSNuqSpFe1UTEDu4MOGSeZTKsO +71y33z4AWsexnDD2ItFLT2rA5EgbApacaYF0AxtSCQ== -----END NEBULA CERTIFICATE V2----- diff --git a/secrets/nebula/isaiah.key.age b/secrets/nebula/isaiah.key.age index ff9490e90fef4d8ccf766cdfbf5c18b56cd36a56..d87df00d12e8e894d5d0c79b586dafb4d5606cf1 100644 GIT binary patch literal 2209 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 X{>MK!4u5*`SI>Rqhu?hZJCFY#LO|X9 diff --git a/secrets/nebula/jeremiah.crt b/secrets/nebula/jeremiah.crt index 69b457b..7e82195 100644 --- a/secrets/nebula/jeremiah.crt +++ b/secrets/nebula/jeremiah.crt @@ -1,6 +1,6 @@ -----BEGIN NEBULA CERTIFICATE V2----- -MIGnoEGACGplcmVtaWFooQcEBQqdAAUQhQRpzYxphgRrrrylhyCDiUxgYHZVqREU -7psr28dIvONmm6qEFVDsxF47BQdArIIgHXr6BLGmqfF92GXiN6MBj3ac0p/EtNYf -xR3/EdI5GnGDQIFxfV5fVwi26+IRk9QIFxyyFBtmsZyPbdxL8ca1WUPm3lCNA4BT -Knd9Y3Zlp6L35L4/dzSqAVoXu2nlHF6SOAA= +MIGuoEiACGplcmVtaWFooQ4EBQqdAAUQBAUKnWQBEIUEamUYxYYEa668pYcgg4lM +YGB2VakRFO6bK9vHSLzjZpuqhBVQ7MReOwUHQKyCIBHK000U9B0TVjuoTaMhQZFi +8cKytw8is2cqUW4XAENBg0CLM+fuJcMVMbk6VHmRhko4KUTaQzWG2dggEwskTWCf +IPXiTY2L/hInHSGFynIIe+Ux9hSRJ1W1KF4J8jq5LBwN -----END NEBULA CERTIFICATE V2----- diff --git a/secrets/nebula/jeremiah.key.age b/secrets/nebula/jeremiah.key.age index 06380aa8d9a6d007eae60d2d99883a640a20f505..a696f1fce8062849a2d08f4112f4a0704286ce36 100644 GIT binary patch literal 1989 zcmZXVN$4a86^9|0(MAIfLT;gv7|`->t=(O97^Rl3y}Gupr8^gE->bT-y0%u3c<>N% z%S9ydka!XVF@hSz70E@+#ats2M@EFvg9y$==iGCDkB{%c@BO?ax{KTwx6`IjuVL>AeWX(kzVN3#fG1~`()Nc)JpJJ&k)yL&yQ3E?O-h;kwbs4M@l;WXwFAg9DWSzt0MX5QE&9i}oo0I`48R8GflpY9AVYSH zP?Vs{3QqUrEp6Ie>V{mBL(5zyAVp?@WxPEJdm9HGXoDvqoG67gFlIca;v7p`i?dmn zVR_zEjIH+9o(qsL&0SxIQ)=p5I=|*TtW=Y;c{+P@N$-G=F1cJA)wCCBPnvroQ(B;Z0oT1drvc0ngpuNX+}$#D;7POGBurRt^;p+ zx8?W{X@GsM3ltQ)UeTd4nxOL(MS^ncR;iU1C(AiTEB725Lx^AF`Uq*z*pM{j>h{=V&q*(?wzsr{m>K@K z3^QSe2fLarLI_(^pcay=9H@Xn*$E=v6s^4-3(9JQYFw};bdd-R=vZ2f%6(^!GK@rM zrJIC~?FNw^cO1Nv&e`c1+O7mwGr9CrkbuM;OkK^kY%X~o(c^?^oTpHn7s9qL)0W?m zZoxo{j39gsbRZHE>$DmiT3vD*1wjZkPVnysSuk%(?<)fC& zC)P@YrwSUf!5;Qpd_ILIsmya)N1jPQ5o*I#Uy2M~5=j?t`(a8I0^|`0T!*WXD6VxB z;|g-_y#!a;Eln==LQLeOcCfun?a|9sv=1lpKwjN&V{J9OJ+Kl~Vg9*Df?KzyuG~|y z>~Lc}uqo{@UKkF%1;b66=Z>Z83EtoV2f5_fQuJA2@CCwxZo+}==mwVngA1_5Kz`~) zwo{wNHmKAP)NCJ;7%be<=sIPfWO-oOR@>E)F@OaM(H=QUzIi58|7jx}{anLl!!BKX zt|)!c8b?P6+1Wvr^~U1~fYmWb11)ZY8JReTmIVUcCWmwoyQN{#39-nfunsdw-PsPS z^_DzX8*0nqU@f0}!`ZnkWUqXO#2D?!1dElIg+XMb_0x{wNq=?l8J`**0v@PoYl;$H zZpzq0>|J$O+}+(RdvCAlu+hPGo;>~GL#-YW4`=`+fwTZ2Oc2>csvRp=JXzfP&Vz5g zevaOM^zMH?`q@h#oRAmZeRvkW_D$-okN@%E`3KKE+ZR{hv<` zZ~yTz^x>yD{;xm&b@TGik3X_L`R51UfAPETJpAupKAs*EZ}mTYHGi%9%o{Ji@+JNF a?O&jOyZ`+EUi`*`*I&K&uQ&f)Jo-Pkm61jO literal 2209 zcmZY9$?Nn69R_d_3OeXP@SuGU4!ra<{!Au&F2y91NhZr=UuHl`Ci^=0k@50Kz&2^VvtIu6; zF)(abch9cdHn|G}2t~K#n!uC3iPwNaE;p7*02Rcy_@*Zc%sNV`1W59=k47ik1CVM$ zo5l237N!o{b|^D8@)1F1f`&}%8;M|<#!C_8psJn(Tlol})&tF|98_CxsSd$ypbRc@ zG-G9lSu-*>xDe_Ci3(nFKqzbU0M*S8D+H8Dm^bKxM}s`gV)ZE^VzMkJIw_Z{VBUU9M+v>)WSY=1kP8;3XKyah7Lzu(ua7 zR7pupnp^a~pY5zOQ*Fh;pfQPXJbST~NX0lOa)?c;Tt#+M3&1JZ@4V z#VoZFB4~*VYgJ2_D<+I9m(JCq!Kv(_BefGt3Sl@!x35D%BQpS&sjJ=BC@qP$@%nJS zsk-tmd6gWj6|a9MA9)cDh0J#if>aD zYFE}NPt&RKM1!OprXMuFcl96Fz0`0+F$E1{BhKxf#*sG45Kmi|%oyGoCbJBLH~6BrgO zkX4mN<`3?6EC6(-);EtgJ;gh_b!B)pBy{%XN(&ORpDM>xJr&M)k~{=>z#dkHjC3X~ zh4r}IdFt-$T<30JXdUQ^Q^@)k{5)}p6xiqfK_|IDiWzMU=>t}y5W-MC>Eq z(u3#>o5w+v;fr8Nw|trNO}JN^2j9J~mm$*DQ%sqXIkEE)>!j9z)gq0v!{h2KPGM0P zI8Igz8eWY;ULo?unVgs}1`$W_o5~A#(M}wkn4z(R0%Y#5t_OJvWIotQ$hvm&xaN3u zsN1Sb0VwfyT$NEH?9E+YwaMmov^FU%=7i@kO%kts0yak260?OPAz=|&9`!CfUq&a) zu#zDIJi#IIyej$!JDCUSuxRUAYa=F*I7hFjYJfPhm^~0nH47Idf8x$Yg_0cHD`70J zpaQL^f!yUay;!|Qrh5S zZ5Xu>(mdI7ySCu`Gh)eb%yV3MzOcJSd$3$cSVI=IRsuEmTM@bqny}R%*^AFw#MUKX z!n>Z8s?OX5drZ-rm|DRLql3+kMiKJDOC!6tVUH}~?xrB+(tuN~q?~2$2RO`EcXxN| zlpsR0>qu(TQboshwvI=W=`5rS%YoVu;0HMAJ@Gr_lSe=J#z(-<|LS+o Rfb5Te??3zUAF9`X`G1#S+RXp} diff --git a/secrets/nebula/zeke.crt b/secrets/nebula/zeke.crt index 92d15ef..9a78250 100644 --- a/secrets/nebula/zeke.crt +++ b/secrets/nebula/zeke.crt @@ -1,6 +1,6 @@ -----BEGIN NEBULA CERTIFICATE V2----- -MIGjoD2ABHpla2WhBwQFCp0ABhCFBGnNjGmGBGuuvKWHIIOJTGBgdlWpERTumyvb -x0i842abqoQVUOzEXjsFB0CsgiCirKKbej7yAALn41C+MYmertD9LOv09gZ61ODF -wEcnB4NAfix/r3q+XLYe3egKUoqJUW2i11x0ST0hxqhJUd8LjHKirRyHsvUraMbG -c8x+CXsCPLgheGt548PpmrObQWtrBA== +MIGqoESABHpla2WhDgQFCp0ABhAEBQqdZAEQhQRqZRi1hgRrrrylhyCDiUxgYHZV +qREU7psr28dIvONmm6qEFVDsxF47BQdArIIg+FmKGTcvIvUcFdcguETRybn3jh58 +jJL6X5BHcmrxOWODQCfB4+92Zs/315a6I60PXsUaw3Jk0MQPLUuHykTO19imWsYa +DyKFlk26ePhczGlhO2svq9J8p0zce0w+TPveOw8= -----END NEBULA CERTIFICATE V2----- diff --git a/secrets/nebula/zeke.key.age b/secrets/nebula/zeke.key.age index 0e4f622..66a582e 100644 --- a/secrets/nebula/zeke.key.age +++ b/secrets/nebula/zeke.key.age @@ -1,41 +1,35 @@ age-encryption.org/v1 --> ssh-ed25519 87huqg 59/Hfejnlp8Qk6VTcVpsaB2su+p/LjxnXCI3+uoxeXs -DW3LJMJ7nK3ySrDVrZTUhOCiDBujWh2ycGjpfMkddJw --> ssh-ed25519 8UnW5Q 2ESBP1XYX71s9tlf1YC9lL+UmJPYjf5qiNNGUsEtnWU -jWRnunZ2ub0QAvQaRznVGTIPIxHrzw8B620zFeZUx3Y --> ssh-ed25519 UFfTmg Vs0zDRmw2scS8exINo2lBO1x2UqVXEElWFtCnGwrzWI -SQM1l0GhHyDqzvykuyvR62XCeQPl/JaEttZJXFdvSFo --> ssh-ed25519 KbVVUw WVNEfBAAEGP0O7vtL04/IaM9nCR57UJkTcT+96ZtaHQ -3m/lb1USu6Vng2+4IEfXsdNwF4NMuVjZ5H/1+QUX4Q8 --> ssh-ed25519 xNtnoA cWYQoTMQmxpFPDCsj8AGOqxx4ErhHnsMiOgJJvhjBCI -6GU/IeVZB1ECMAGYiL8tLPqgCuC2ujNcdSgzhOof7hI --> ssh-ed25519 aY2AXA n1f3kFHxIvt5CbiBq6Vs32zoZEeYC5aBAZz5lCUEuxI -OuFwQTJAdv2oMxzFbce6iqUa7SAu3aHMYU+D3L0gNbo --> ssh-ed25519 AQhf1g hjjixHEYRom6XjHsIf2pMZvcMNxfeBw79+ApOheQezc -/HvBy+L5eaz9NAShIeNfagE8LzamzxolD5ZIdapiyPA --> ssh-ed25519 mOmPfg JJQYaT1ch0i4xeMrCVCgzq25dy7GhqNCHGXTd3syHCI -4F+EQY7WbDJ8DwukaMelfYi9Q3LjYBpfhgCJVyXUtWI --> ssh-ed25519 YJiRbw eFi1X3pmVVmkCDl8Jr+lIv2LeuSbMg6WqrpezABmOR8 -2arsXH0pdYxINujCFonHrqwEDVr4qR5ugXix8uu+cOk --> ssh-ed25519 Nl/5yA ScYVPC1pyYkgweGi+hxQaXJ8UEnKta2VqbyHgSPTKCY -CLiTEjJ6ylD3SlzrFHaz8yHaqc5KbCs3x3ij8Mgdnks --> ssh-ed25519 GdLgCQ TQHucvsozqInbmCsh1GHZ2JF5pbUteT/W3XieSIfmj4 -Owq1wb9MdMD9pVJj24QCTvmkyh57Q2cKqfMRxj3ZFq4 --> ssh-ed25519 tOH/HQ KVKjt9GYmfcNOO7LTA1bypmtoYTYHgKWgD2dpD4zxUA -VjlWDbSZp0NHC9VfRONz8UH2JtvIQWzqc7V/gJef/5A --> ssh-ed25519 FpzvfQ gAlbAOE0Zz2A0391SyUKfLQDBt0+9HYPn54rG5HY/hM -4t/wJ7L7yJvnFkdonsKTBFza+C7gXr8AI1PMEH58sO8 --> ssh-ed25519 2UotMw rrb5P6bPLUibtQ8Pkz533mQe65XA4DZOyw7B3GV6oHg -Xs9cK2GZ3k2FgrHjIeB4DTe3gdahFFvS892siiAyEvI --> ssh-ed25519 kdPvzQ JTPJpaE97otqsADN017u6dw2h9DWlD2NkwIyT5+b8yo -QroD7owHZ4ThrVDBTJO3/wn6PK8wfrOwypjbjTxGkSM --> ssh-ed25519 onmXpg QuQjNKosTocZ4y2KRvqMISezBbSll9ERKBTtKEVMIRs -R0mgBtM2iZ6lcBzGC5hDz5G06G5O8FM2C1Vll2NW/Ag --> ssh-ed25519 CnhD0g tSMysXdWjfmoBkVXD/wCIUEikjH7jiuEFlmrbfjIkmE -xrkP8nl1nE+LvHA0vb1rOnQKNR/SB+KaqYBvJHDa3fs --> ssh-ed25519 4ep2UA o1Vut8uttNV4+3DuZ67gURlGdnRittoON/xPE05i838 -03mFKfz89r0EKnY4tRL1zd9jKarZFW9TdX9nvvgAOTU ---- At7cFNjOg5E5WlaySJtqRZoK2/Gu+sXMI/cITd1SOKA -6vz0{ݚj& wmeE,| -_aD#q]L"W( Ѷʹwm]O# -T k ɗgr]fT_'w;!N\g!Tcb7XmLx \ No newline at end of file +-> ssh-ed25519 8UnW5Q E8Ki3oFCl3dLp9gxZ7/Ene8NMM26OVJ4PMJQQYQnBm0 +3rC3LMfdPCvSsiwaVnAb7VHwyw7KjZKcASdWm0lDg5E +-> ssh-ed25519 UFfTmg 6q8nJbCIQe2IV/W/31OpuI6sZI833IbU+weSTU05Mng +EgiGZwIN0oRjw9pAaHjypWtswBA1c5PCkNeN9K4YlT8 +-> ssh-ed25519 xNtnoA cyxa8uxevJ9VEaYLg2g9rewcAMhsZRAPEkzqd9k6ngE +SedkkmBd4foxqB1MlCAkfIqO6ft5xnmLBa2cShzw/GI +-> ssh-ed25519 aY2AXA biY7lFtfvr6vBv/XBhZ6Uh7Hpj+Du0NuEjo2RMp6USI +5DgzmbEw5f6h4lHm7FlRZHXn4C9vCJ6IguXk7jZXxqM +-> ssh-ed25519 AQhf1g e3g+IdnzmuJZj3H4LWdbZ8yaj5GM21zz3HCgkzFG5Cg +oyzAIsqnL9ypSOCHINMu/+VM9TJeqgY9jLumhmAFIu8 +-> ssh-ed25519 mOmPfg o4pCs9ferfC6+OawWXsM5Wa/5q+4EN+lEg/diMrjVhQ +H1gSB90UuJaivo2MhinPQGCV+rmSX1ZWazfhOxIDcaM +-> ssh-ed25519 YJiRbw o33TjJkI7rc1DxXRMdgwoHfCqzU3sGd7BZo7Uw0I8iA +/PiNDHyAl54HYszKkRzsjuoAZ53Ly1Oizf6NUIDB+I4 +-> ssh-ed25519 Nl/5yA FUycbaA303kvgINg9eNM53lN6aUXQPBxWz9liuhZ6Vo +nNMPiq0w06WWfe73fpj/9ixunwgzZUCEi6pIKWuNWvQ +-> ssh-ed25519 GdLgCQ sD2xKKzEyD7GsnFJCrDi40sJX0yBIXLr3pLx1R6RT1g +ThDfA6T5/9cgAFKZPQtxGhKHdYOZx4sSQnoxzJMsLwc +-> ssh-ed25519 tOH/HQ YeQfSV5UxsYAMEIOq1FNpkNcM4LEA8zvcbOceZ/26ws +KMeeyObeOBmqxS6hqhVbDgvoB5jUJr8k21igT3rqoww +-> ssh-ed25519 FpzvfQ GbT7exaVbqJNP7LdV/wyye89yXuN6FI20j7ckx5r5nI +bNMqf7oY6NWVTPvVLOy+UpJKT0C9m6WunfdvMXCUZzk +-> ssh-ed25519 2UotMw Zpco9IYJXyl9wIZo22g/kp/OjfClOtUP2in+N0hYX3o +e68dEYPiNdlrSFaMTzvrhCz9/5V5zFAvrTnPtNSyI4c +-> ssh-ed25519 kdPvzQ 2j64L6rV5b5+sbKbNAGf9+7uKLgdBpKNv9umHtSW4wY +3y74VGUzKb9uhh3DvlkvZ5Jxtgfku7s1kDKrGDWUUvk +-> ssh-ed25519 onmXpg 8GDMsteOopCnaaVkXAoRMbGuXeKoSqpyZhLvbnEWBQU +X0HsZbpT4Wc/KO0TBwVSyjK6Zcbz1A34VCozNrMH4Lw +-> ssh-ed25519 CnhD0g uHIeQtUwcDRXdJpFglJ12ptOPP64yMP6WKPz00sAQ0c +yIKZNODIQSkNr4UilEHZzOBxeRA4G/sAbkppyOdUjkQ +-> ssh-ed25519 4ep2UA k+cteVM7cMWQk7xDcCZgWlZxgA4ZBmUlbZHQFmMoi0Q +YC2fptyb258arEdeOcPhCc3+z/vIgEElbqn2Ik3r2Lo +--- NJ2uO0A/UbPrw+IgObiiXTwV75xgsWTjYvLpTwznDXM +B -`8n=m5/szǼmSƠ&_WRp߲=iGFyEІIq:|-~$>bv~le/dVوqо€5ς|J _lZ2rPޗp. \ No newline at end of file