dotfiles/users/_common/nix_modules/ssh-key.nix
RingOfStorms (Joshua Bell) 160b567583 gpdPocket3 updates
2024-04-25 19:22:42 -05:00

27 lines
1,006 B
Nix

{ settings, pkgs, ... }:
{
# Ensure SSH key pair generation for non-root users
systemd.services.generate_ssh_key = {
description = "Generate SSH key pair for ${settings.user.username}";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
User = "${settings.user.username}";
Type = "oneshot";
};
script = ''
#!/run/current-system/sw/bin/bash
if [ ! -f /home/${settings.user.username}/.ssh/id_ed25519bbb ]; then
if [ -v DRY_RUN ]; then
echo "DRY_RUN is set. Would generate SSH key for ${settings.user.username}."
else
echo "Generating SSH key for ${settings.user.username}."
mkdir -p /home/${settings.user.username}/.ssh
chmod 700 /home/${settings.user.username}/.ssh
/run/current-system/sw/bin/ssh-keygen -t ed25519 -f /home/${settings.user.username}/.ssh/id_ed25519bbb -N ""
fi
else
echo "SSH key already exists for ${settings.user.username}."
fi
'';
};
}