9front

On 2025-03-07, I installed 9front on my Thinkpad X60. I'd attempted SDF's Plan 9 Bootcamp in the past, but wound up getting distracted a couple weeks in. As I sink into retro computing generally, the time seemed right to make yet another incursion. (I'd been aware of Plan 9 since around 2009 or so, visited it via VMs from time to time as an "operating system tourist," and read the odd article or bit of documentation.)

From 2025-07-13 through (presumably; I write this on 2025-07-17) 2025-07-20, I participated in the Old Computer Challenge, using primarily 9front on the beige box.

Setup

Encrypted Secrets

The "official" solution for handling credentials like SSH keys and passwords for other servers is to set up an always-on auth server running secstored, but this isn't really how I've been using 9front. I imagine I'm far from alone in using 9front on a single machine as a single user, so I figured I'd share my method for, e.g., generating an SSH key in RAM and getting it into an encrypted file for decryption and loading into factotum at boot.

Most of this is copied directly from [the plan9.io page on using aescbc to store factotum keys].

# Skip these first three lines if you've already created fact.keys
term% echo test | auth/aescbc -e > $home/lib/fact.keys
term% aescbc key: # enter the password you want to use to encrypt the file here
term% chmod 600 $home/lib/fact.keys

term% mkdir mnt
term% ramfs -p -m mnt
term% cd mnt
term% ls
term% auth/rsagen -t 'service=ssh' -b 4096 >sshkey
term% auth/rsa2ssh sshkey >$home/lib/sshkey.pub
term% cat sshkey
<snip> # snarf the key
term% ipso -a $home/lib/fact.keys
   Warning: The editor will display the secret contents of
   your aescbc files in the clear.
 aescbc password:

# paste the key onto a new line in your editor, save, and exit

flushing old keys
loading factotum keys
copy 'fact.keys' back? [y/n/x]y
'/usr/glenda/lib/fact.keys' copied to aescbc

Following the instructions on the plan9.io wiki, I added this line to my lib/profile:

if(test -f $home/lib/fact.keys)
	auth/aescbc -d < $home/lib/fact.keys | read -m > /mnt/factotum/ctl

I plan on changing this to re-prompt me up to three times if I enter the wrong password.

Goals

Things I'd like to contribute to:

Elsewhere

Page Created: 2025-03-07

Last Updated: 2025-07-17

Last Reviewed: 2025-03-07