main
1#!/usr/bin/env bash
2
3# Authorize a supplied dedicated Nix builder public key on Nagoya.
4# Run after installing /etc/nix/keys/nagoya-builder.pub.
5
6set -euo pipefail
7
8KEY_FILE="${KEY_FILE:-/etc/nix/keys/nagoya-builder.pub}"
9NAGOYA_HOST="${NAGOYA_HOST:-nagoya.vpn}"
10SSH_KEY="${SSH_KEY:-$HOME/.ssh/id_homelab_sk}"
11
12if [[ ! -r "$KEY_FILE" ]]; then
13 echo "Builder public key not readable: $KEY_FILE" >&2
14 exit 1
15fi
16
17public_key=$(<"$KEY_FILE")
18authorized_key="restrict,command=\"/nix/var/nix/profiles/default/bin/nix-daemon --stdio\" $public_key"
19
20printf '%s\n' "$authorized_key" |
21 ssh -i "$SSH_KEY" -o IdentitiesOnly=yes "vincent@$NAGOYA_HOST" \
22 'umask 077; mkdir -p ~/.ssh; touch ~/.ssh/authorized_keys; key=$(cat); grep -qxF "$key" ~/.ssh/authorized_keys || printf "%s\n" "$key" >> ~/.ssh/authorized_keys'