-That alone is enough to associate public keys with a user, but we still need to
-implement `git-shell-multiplex` (in Rust, of course) to enable git access
-without breaking our security model.
-
-The goal here is to only accept the three commands that a git remote actually
-requires, and to validate the permissions for the repo accessed against the
-username associated with the public key that we setup in `authorized_keys`. Rust
-is to some degree, a terrible choice for this kind of scripting, but we don't
-let bad ideas get in the way of doing whatever we like and the script is
-[here!](https://git.nega.tv/?p=josh/git-shell-multiplex;a=blob;f=src/main.rs;h=db2d9cbc1c3dbf763a6204c8fc0a2b39f6c7e30f)
-
-For permissions this currently re-uses the `git-daemon-export-ok` marker file to
-determine whether a project is *public* (readable by anybody with an account,
-this file name will make sense later), and looks for a file called
-`git-shell-multiplex-contributors` for a list of users with write access in
-addition to the *owner* of the repository (the one whose name is at the front of
-the path e.g. `josh/repo.git` would be owned by the user "josh").
-
-With these pieces in place, we can do `git clone git@nega.tv:josh/narcissus.git`
-and `git push origin main`! Not too hard after all.
-
-One downside of this is the configuration nightmare contained in
-`authorized_keys`. Since we have one user it's no big deal, but it's worth
-noting that you can also replace the `authorized_keys` _file_ with an
-`authorized_keys` _command_ using `AuthorizedKeysCommand` in
-[sshd_config](https://linux.die.net/man/5/sshd_config). This could then find the
-appropriate keys and user configuration directly from some database, and
-likewise the multiplexer itself could source the user and permission data from a
-central location rather than digging around looking for specially named files.
+Then, I implement _git-shell-multiplex_ (in Rust, of course) to run permission
+checks and validate users are only using git commands. Rust is a questionable
+choice for this kind of scripting, but I don't let bad ideas get in the way of
+doing whatever I like. The script is [available here!](https://git.nega.tv/?p=josh/git-shell-multiplex;a=blob;f=src/main.rs;h=db2d9cbc1c3dbf763a6204c8fc0a2b39f6c7e30f).
+
+In order to define the repository permissions I'm currently reusing the `git-daemon-export-ok`
+marker file to enable read-access, and a new file, `git-shell-multiplex-contributors`,
+which contains a list of users with write access[^write-access].
+
+[^write-access]: This is *in-addition* to the account which contains the
+repository. So 'josh' always has full access to 'josh/repo.git'
+
+With that sorted, `git clone git@nega.tv:josh/narcissus.git` and
+`git push origin main` work! Not too hard after all.
+
+One downside is the configuration nightmare in the `authorized_keys` file, but
+I'm just one person so it's not a big deal. You could also replace the
+`authorized_keys` _file_ with an `authorized_keys` _command_ using
+`AuthorizedKeysCommand` in [sshd_config](https://linux.die.net/man/5/sshd_config).
+This would allow writing a single script to look up the appropriate keys and
+configuration from a database shared with the multiplexer.