Monorepo for Tangled tangled.org

proposal: HTTPS/OAuth authentication for pushing to knots #607

Open madoka.systems
Open opened by madoka.systems

Currently the only way to push to a knot is to have an ssh key registered. I'd like the ability to have some sort of HTTPS or OAuth mechanism instead because in some cases you can't open a port for ssh (for example, I run my knot behind Cloudflare tunnels and it's impossible to have SSH connections via the tunnel without having the warp client installed).

I think that the best way to handle this would be delegating authentication to the PDS using something shaped like the atcr credential helper and/or the git-credential-oauth credential helper.

made a crappy proof of concept at https://tangled.org/madoka.systems/core/tree/knot-oauth and doesn't work with spindles (neither the new http path or the old ssh path, so don't use this in production obviously), but you use it like this:

use the git-credential-tangled oauth provider to enroll a key for your device be doing:

git-credential-tangled enroll --handle <handle>

then this will give you a like which asks for oauth permissions for atproto repo:sh.tangled.httpKey for localhost, then it takes the public key from that and publishes it to sh.tangled.httpKey/<tid> mirroring the publicKey lexicon. then you push like normal to your https repo url.

I make extensive use of git-credential-oauth on the daily and I'm in the same situation. Exposing ssh to my knot is not easy or clean and a different authentication mechanism would be preferable.

Sign up or Sign in to add to the discussion.