Commit Graph

11 Commits (0fccb1005e4ffd315eb4c45c71d2e6de76bba27a)

Author SHA1 Message Date
Dustin 0fccb1005e ci: Build container image
dustin/sshca-cli/pipeline/pr-master Something is wrong with the build of this commit Details
In addition to building an RPM package for regular Fedora machines, we
now build a container image containing a statically-linked `sshca-cli`
executable.
2024-01-17 21:24:58 -06:00
Dustin 2b87aca9f1 Add rustls feature
The `rustls` feature will enable building with [rustls] instead of
OpenSSL.  This will make it so the `sshca-cli` binary can be statically
linked, and thus distributable as a single file.

[rustls]: https://github.com/rustls/rustls
2024-01-17 21:24:21 -06:00
Dustin a754e47b0d ci: Request 1.5 CPUs for each container
dustin/sshca-cli/pipeline/head This commit looks good Details
The cloud aarch64 build machine does not have enough resources to build
multiple versions at once.  Requesting multiple CPUs ensures that only
one build pod is scheduled at a time.  Since the node has 2 CPUs and
240m CPUs are taken by Longhorn, if we request 1500m CPUs, builds will
run sequentially.
2023-12-29 12:36:34 -06:00
Dustin 7f51ae919f ci: build for Fedora 39
Fedora 39 is out, so we need builds of *sshca-cli* for it.
2023-12-29 12:36:34 -06:00
Dustin 041788e818 ci: Import ci pipeline from original repo
dustin/sshca-cli/pipeline/head This commit looks good Details
When this repository was split from the original *dustin/sshca*
repository, the CI pipeline was not imported.  It wouldn't have mattered
if it had been, since it wouldn't have worked, anyway, given the path
changes.
2023-11-13 20:32:03 -06:00
Dustin 8d146cdb62 meta: Add .editorconfig 2023-11-13 19:42:53 -06:00
Dustin 630aa4dcee cli: Bump to v0.1.1 2023-11-12 18:23:18 -06:00
Dustin d8126a6dcb cli: Trim trailing null from RPi serial
The `/sys/firmware/devicetree/base/serial-number` pseudo-file has a
trailing null byte, which causes `Uuid::parse_srr` to fail.  This makes
it impossible to authenticate Raspberry Pi devices to the server.  The
trailing byte needs to be removed before attempting to parse the serial
number into a UUID to avoid this problem.
2023-11-12 10:44:48 -06:00
Dustin 5ab5c3e98d rpm: Add systemd service/target/timer units
The *ssh-host-cert-sign@.service* unit does what it says on the tin:
requests a signed host certificate from an SSHCA server.  It is a
template unit, whose instances correspond to SSH key types (RSA, ECDSA,
and Ed25519).  The *ssh-host-certs.target* unit depends on the three
instances of the template unit, so they can all be activated together.
This target is only activated on the first boot of the system, to
initially request the certificates.

The *ssh-host-certs-renew.timer* unit periodically renews the SSH hosts
certificates.  Its corresponding target unit depends on the three
instances of *ssh-host-cert-sign@.service*, so each certificate will be
renewed independently.
2023-11-06 18:34:20 -06:00
Dustin f6abf699e8 rpm: Add sshca-cli RPM spec
The *sshca-cli* RPM package can be used to install the SSHCA CLI client
on Fedora (and other RPM-based distributions).  The `.spec` file was
originally generated using [rust2rpm], but several manual modifications
were required.  Notably, the script does not generate `BuildRequres`
tags when run in "vendored" mode (i.e. third-party crate sources are
included in the source RPM package instead of packaged as separate
RPMS).
2023-11-06 18:11:19 -06:00
Dustin b203bbd87c cli: Begin CLI client
The CLI tool will be the primary method for interacting with the SSH CA
service.  For now, it supports a single operation: `sshca-cli host
sign`, which requests a certificate to be signed by the CA service.`
2023-11-05 10:31:58 -06:00