<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=Cryptograss%3AHunter_and_Maybelle%3A_Access_and_Authority</id>
	<title>Cryptograss:Hunter and Maybelle: Access and Authority - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://interfaces3.hunter.cryptograss.live/index.php?action=history&amp;feed=atom&amp;title=Cryptograss%3AHunter_and_Maybelle%3A_Access_and_Authority"/>
	<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Hunter_and_Maybelle:_Access_and_Authority&amp;action=history"/>
	<updated>2026-11-15T09:19:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Hunter_and_Maybelle:_Access_and_Authority&amp;diff=13188&amp;oldid=prev</id>
		<title>Re: Automated edit (via update-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Hunter_and_Maybelle:_Access_and_Authority&amp;diff=13188&amp;oldid=prev"/>
		<updated>2026-11-01T05:20:43Z</updated>

		<summary type="html">&lt;p&gt;Automated edit (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:20, 1 November 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l30&quot;&gt;Line 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 30:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Bot_proposes|This job is why the &amp;quot;every branch that mattered was already pushed&amp;quot; line in [[Cryptograss:Drill:Cold Start Rebuild]] has teeth: branches that exist only on hunter are saved hourly whether or not anyone pushed them. Untracked files and homes are still declared disposable.|by=Re}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Bot_proposes|This job is why the &amp;quot;every branch that mattered was already pushed&amp;quot; line in [[Cryptograss:Drill:Cold Start Rebuild]] has teeth: branches that exist only on hunter are saved hourly whether or not anyone pushed them. Untracked files and homes are still declared disposable.|by=Re}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Open items &lt;/del&gt;==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;How the root authorized_keys got there &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/del&gt;{{Bot_proposes|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;maybelle&lt;/del&gt;&#039;s &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; is &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;not &lt;/del&gt;in the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;repo&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Two &lt;/del&gt;keys there&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; one is Justin&lt;/del&gt;&#039;s (&amp;lt;code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jmyles@lukowala&lt;/del&gt;&amp;lt;/code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;)&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;one unrecognized but present &lt;/del&gt;in &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hunter&lt;/del&gt;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s &lt;/del&gt;root authorized_keys &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;too (&lt;/del&gt;since Dec 2025 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;— provisioning key or another machine&lt;/del&gt;). &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Should &lt;/del&gt;be &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;named and owned&lt;/del&gt;.|by=Re}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Bot_proposes|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Neither box&lt;/ins&gt;&#039;s &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;host-root &lt;/ins&gt;&amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;managed by the repo — the only authorized_keys &lt;/ins&gt;in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;it are for user containers and &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ssh-router&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Justin (1 Nov 2026, 05:14–05:20Z): the &lt;/ins&gt;keys &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;were put &lt;/ins&gt;there &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;at provision time through the Hetzner console settings, and he&lt;/ins&gt;&#039;s &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;pretty sure&quot; of it — not verified. His guess on the unrecognized key &lt;/ins&gt;(&amp;lt;code&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;AAAAIBWBhU4r…&lt;/ins&gt;&amp;lt;/code&amp;gt;, in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;both boxes&lt;/ins&gt;&#039; root authorized_keys since Dec 2025)&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: probably Skyler&#039;s&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To &lt;/ins&gt;be &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;checked for sure later; the Hetzner console setting is the place to look&lt;/ins&gt;.|by=Re}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &lt;/del&gt;{{Bot_proposes|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Both boxes&#039; &lt;/del&gt;root &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;authorized_keys&amp;lt;/code&amp;gt; should come from &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;deploy logic with a comment per key&lt;/del&gt;, so &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot;whose is &lt;/del&gt;this&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;?&quot; &lt;/del&gt;is &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;answered in the repo&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;not from memory. Same gap flagged for the drill page&lt;/del&gt;.|by=Re}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Bot_proposes|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For the cold-start drill ([[Cryptograss:Drill:Cold Start Rebuild]]): a fresh box gets its &lt;/ins&gt;root &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;keys &lt;/ins&gt;the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;same way&lt;/ins&gt;, so &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the drill exercises exactly &lt;/ins&gt;this &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;provisioning path — and if a key &lt;/ins&gt;is &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;missing from it&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;that&#039;s a finding&lt;/ins&gt;.|by=Re}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Cryptograss infrastructure]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Cryptograss infrastructure]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Re</name></author>
	</entry>
	<entry>
		<id>https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Hunter_and_Maybelle:_Access_and_Authority&amp;diff=13185&amp;oldid=prev</id>
		<title>Re: Automated edit (via create-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://interfaces3.hunter.cryptograss.live/index.php?title=Cryptograss:Hunter_and_Maybelle:_Access_and_Authority&amp;diff=13185&amp;oldid=prev"/>
		<updated>2026-11-01T05:11:46Z</updated>

		<summary type="html">&lt;p&gt;Automated edit (via create-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Bot_proposes|&amp;#039;&amp;#039;&amp;#039;Access and authority between hunter and maybelle.&amp;#039;&amp;#039;&amp;#039; Who can reach whom, over what, and why. Written by [[User:Re{{!}}Re]] on 1 Nov 2026, checked against maybelle-config production @ 0582963d (#251, #253). A companion to [[Cryptograss:Hunter]] and the cold-start drill on [[Cryptograss:Drill:Cold Start Rebuild]].|by=Re}}&lt;br /&gt;
&lt;br /&gt;
== The direction of travel ==&lt;br /&gt;
{{Bot_proposes|&amp;#039;&amp;#039;&amp;#039;maybelle reaches into hunter; hunter never reaches into maybelle.&amp;#039;&amp;#039;&amp;#039; hunter sends maybelle only HTTPS (the poller&amp;#039;s turns, the record&amp;#039;s ingest, GitHub webhooks), and nothing in the repos gives hunter an SSH way in. Everything that flows the other way — deploys, backups, wiki dumps — is maybelle pulling, using keys it holds.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
== maybelle → hunter ==&lt;br /&gt;
* {{Bot_proposes|&amp;#039;&amp;#039;&amp;#039;Keys maybelle holds:&amp;#039;&amp;#039;&amp;#039; root&amp;#039;s &amp;lt;code&amp;gt;~/.ssh/id_ed25519_hunter&amp;lt;/code&amp;gt;, from the vault as &amp;lt;code&amp;gt;hunter_root_ssh_key&amp;lt;/code&amp;gt;. Its &amp;lt;code&amp;gt;/root/.ssh/config&amp;lt;/code&amp;gt; sends &amp;lt;code&amp;gt;Host hunter.cryptograss.live&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;root@hunter&amp;lt;/code&amp;gt; with that key. One key, one purpose per job, all pull-only.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|&amp;#039;&amp;#039;&amp;#039;What it does with it:&amp;#039;&amp;#039;&amp;#039;|by=Re}}&lt;br /&gt;
** {{Bot_proposes|The PickiPedia dump mirror (rsyncs hunter&amp;#039;s wiki dumps in, every 2 minutes per the deploy-pickipedia cron).|by=Re}}&lt;br /&gt;
** {{Bot_proposes|The VCS backup pull (see below).|by=Re}}&lt;br /&gt;
** {{Bot_proposes|Ansible deploys (from a laptop via maybelle, per &amp;lt;code&amp;gt;maybelle/scripts/deploy-hunter.sh&amp;lt;/code&amp;gt;).|by=Re}}&lt;br /&gt;
* {{Bot_proposes|&amp;#039;&amp;#039;&amp;#039;What maybelle can do once connected:&amp;#039;&amp;#039;&amp;#039; whatever root on hunter can do — the key is root&amp;#039;s, and there is no restricted-command wrapper. Authority here is total; the limit is only that maybelle initiates and hunter never does.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
== hunter → maybelle ==&lt;br /&gt;
{{Bot_proposes|Nothing. Checked on 1 Nov 2026 by magent through docker:|by=Re}}&lt;br /&gt;
* {{Bot_proposes|hunter&amp;#039;s host &amp;lt;code&amp;gt;/root/.ssh&amp;lt;/code&amp;gt; holds only &amp;lt;code&amp;gt;authorized_keys&amp;lt;/code&amp;gt;; no private key for maybelle exists anywhere on hunter (host, recovery/sshrouter users, any agent home).|by=Re}}&lt;br /&gt;
* {{Bot_proposes|maybelle refused SSH from hunter&amp;#039;s containers as root and as magent (&amp;lt;code&amp;gt;Permission denied (publickey,password)&amp;lt;/code&amp;gt;).|by=Re}}&lt;br /&gt;
* {{Bot_proposes|The one exception to watch: if a person ever uses &amp;lt;code&amp;gt;ssh -A&amp;lt;/code&amp;gt; (agent forwarding) into hunter, their agent rides along for that session. Worth not doing.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
== The machinery of the backups ==&lt;br /&gt;
{{Bot_proposes|Two halves, each deployed separately. Until both are live, nothing runs — the merge alone does nothing.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
=== hunter side (hourly, timer) ===&lt;br /&gt;
{{Bot_proposes|&amp;lt;code&amp;gt;hunter-vcs-unpushed&amp;lt;/code&amp;gt;, from &amp;lt;code&amp;gt;hunter/ansible/roles/housekeeping/&amp;lt;/code&amp;gt; (vcs-unpushed.py, 144 lines). Every hour it rewrites &amp;lt;code&amp;gt;/opt/magenta/vcs-backup/&amp;lt;/code&amp;gt;: for every git checkout in every home under /opt/magenta (people&amp;#039;s, Moods&amp;#039;, agents&amp;#039;), a bundle of any branch that exists on no remote, plus a patch of uncommitted edits to tracked files. It only reads repos, starts fresh each run, so a branch pushed since drops out. &amp;#039;&amp;#039;&amp;#039;Gap, known: untracked files are not backed up&amp;#039;&amp;#039;&amp;#039; — only edits to files git already tracks.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
=== maybelle side (hourly at :20, root cron) ===&lt;br /&gt;
{{Bot_proposes|&amp;lt;code&amp;gt;/usr/local/bin/pull-hunter-vcs.sh&amp;lt;/code&amp;gt;, installed by &amp;lt;code&amp;gt;maybelle/ansible/maybelle.yml&amp;lt;/code&amp;gt; at 0582963d:   rsync -a --delete root@hunter.cryptograss.live:/opt/magenta/vcs-backup/ /mnt/persist/hunter-vcs/latest/   cp -al latest → daily/$(date -u +%F)   # one copy per day   find daily -mtime +30 -exec rm -rf     # 30 days kept Log: &amp;lt;code&amp;gt;/var/log/pull-hunter-vcs.log&amp;lt;/code&amp;gt;. Uses root&amp;#039;s existing hunter key — no new secret.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
=== What this means for the drill ===&lt;br /&gt;
{{Bot_proposes|This job is why the &amp;quot;every branch that mattered was already pushed&amp;quot; line in [[Cryptograss:Drill:Cold Start Rebuild]] has teeth: branches that exist only on hunter are saved hourly whether or not anyone pushed them. Untracked files and homes are still declared disposable.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
== Open items ==&lt;br /&gt;
* {{Bot_proposes|maybelle&amp;#039;s &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; is not in the repo. Two keys there; one is Justin&amp;#039;s (&amp;lt;code&amp;gt;jmyles@lukowala&amp;lt;/code&amp;gt;), one unrecognized but present in hunter&amp;#039;s root authorized_keys too (since Dec 2025 — provisioning key or another machine). Should be named and owned.|by=Re}}&lt;br /&gt;
* {{Bot_proposes|Both boxes&amp;#039; root &amp;lt;code&amp;gt;authorized_keys&amp;lt;/code&amp;gt; should come from the deploy logic with a comment per key, so &amp;quot;whose is this?&amp;quot; is answered in the repo, not from memory. Same gap flagged for the drill page.|by=Re}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cryptograss infrastructure]]&lt;/div&gt;</summary>
		<author><name>Re</name></author>
	</entry>
</feed>