HomePhabricator

Add `bin/almanac register` to associate a host with an Almanac device and trust…

Description

Add bin/almanac register to associate a host with an Almanac device and trust it

Summary:
Ref T2783. This is basically a more refined version of D10400, which churned a bit on things like SSH key storage, the actual way the signing protocol shook out, etc.

  • When Phabricator tries to make an intra-cluster service call as the omnipotent user, sign it with the host's device key.
  • Add bin/almanac register to say "this host is X device, identified by private key Y". This stores the keypair locally, adds the public key to Almanac, and trusts it.

Net effect is that once a host has been registered, the daemons can make calls to other nodes as the omnipotent user. This is primarily necessary so they can access repository API methods on remote hosts.

Test Plan:

  • Ran bin/almanac register with various valid and invalid inputs.
  • Verified keys get generated/added/stored properly.
  • Made a device-signed cluster Conduit call.
  • Made a normal old user-signed cluster Conduit call.

Reviewers: btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T2783

Differential Revision: https://secure.phabricator.com/D11158