60 lines
1.3 KiB
Nix
60 lines
1.3 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
with lib;
|
|
with types;
|
|
|
|
{
|
|
options.components.nixos.boot = {
|
|
|
|
enable = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
};
|
|
|
|
kernelModules = mkOption {
|
|
type = listOf str;
|
|
default = [ ];
|
|
description =
|
|
"lspci -v will tell you which kernel module is used for the ethernet interface";
|
|
};
|
|
|
|
ssh = {
|
|
|
|
enable = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = config.components.nixos.boot.enable;
|
|
};
|
|
|
|
|
|
};
|
|
};
|
|
|
|
config = mkMerge [
|
|
|
|
# ssh part
|
|
# --------
|
|
(mkIf (config.components.nixos.boot.ssh.enable) {
|
|
|
|
# boot
|
|
boot.initrd.systemd.enable = true;
|
|
boot.initrd.systemd.contents."/etc/hostname".text = "unlock.${config.networking.hostName}";
|
|
|
|
# network
|
|
boot.initrd.systemd.network.enable = true;
|
|
boot.initrd.availableKernelModules = config.components.nixos.boot.kernelModules;
|
|
|
|
# ssh
|
|
boot.initrd.network.enable = true;
|
|
boot.initrd.network.ssh = {
|
|
enable = true;
|
|
#authorizedKeys = config.users.users.root.openssh.authorizedKeys.keys ;
|
|
#authorizedKeyFiles = config.users.users.root.openssh.authorizedKeys.keyFiles;
|
|
port = 2222;
|
|
hostKeys = map ({ path, ... }: path) config.services.openssh.hostKeys;
|
|
};
|
|
|
|
|
|
})
|
|
|
|
];
|
|
}
|
|
|