forked from mirrors/nixpkgs
nixos/tests/systemd-initrd-networkd-ssh: Test with backdoor not LUKS
This commit is contained in:
parent
8900b027c7
commit
b41cbee0fd
|
@ -4,34 +4,16 @@ import ./make-test-python.nix ({ lib, ... }: {
|
||||||
|
|
||||||
nodes = {
|
nodes = {
|
||||||
server = { config, pkgs, ... }: {
|
server = { config, pkgs, ... }: {
|
||||||
environment.systemPackages = [ pkgs.cryptsetup ];
|
testing.initrdBackdoor = true;
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.initrd.systemd.enable = true;
|
||||||
boot.loader.timeout = 0;
|
boot.initrd.systemd.contents."/etc/msg".text = "foo";
|
||||||
virtualisation = {
|
boot.initrd.network = {
|
||||||
emptyDiskImages = [ 4096 ];
|
enable = true;
|
||||||
useBootLoader = true;
|
ssh = {
|
||||||
# Booting off the encrypted disk requires an available init script from
|
|
||||||
# the Nix store
|
|
||||||
mountHostNixStore = true;
|
|
||||||
useEFIBoot = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
specialisation.encrypted-root.configuration = {
|
|
||||||
virtualisation.rootDevice = "/dev/mapper/root";
|
|
||||||
virtualisation.fileSystems."/".autoFormat = true;
|
|
||||||
boot.initrd.luks.devices = lib.mkVMOverride {
|
|
||||||
root.device = "/dev/vdb";
|
|
||||||
};
|
|
||||||
boot.initrd.systemd.enable = true;
|
|
||||||
boot.initrd.network = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
ssh = {
|
authorizedKeys = [ (lib.readFile ./initrd-network-ssh/id_ed25519.pub) ];
|
||||||
enable = true;
|
port = 22;
|
||||||
authorizedKeys = [ (lib.readFile ./initrd-network-ssh/id_ed25519.pub) ];
|
hostKeys = [ ./initrd-network-ssh/ssh_host_ed25519_key ];
|
||||||
port = 22;
|
|
||||||
# Terrible hack so it works with useBootLoader
|
|
||||||
hostKeys = [ { outPath = "${./initrd-network-ssh/ssh_host_ed25519_key}"; } ];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -63,24 +45,16 @@ import ./make-test-python.nix ({ lib, ... }: {
|
||||||
status, _ = client.execute("nc -z server 22")
|
status, _ = client.execute("nc -z server 22")
|
||||||
return status == 0
|
return status == 0
|
||||||
|
|
||||||
server.wait_for_unit("multi-user.target")
|
|
||||||
server.succeed(
|
|
||||||
"echo somepass | cryptsetup luksFormat --type=luks2 /dev/vdb",
|
|
||||||
"bootctl set-default nixos-generation-1-specialisation-encrypted-root.conf",
|
|
||||||
"sync",
|
|
||||||
)
|
|
||||||
server.shutdown()
|
|
||||||
server.start()
|
|
||||||
|
|
||||||
client.wait_for_unit("network.target")
|
client.wait_for_unit("network.target")
|
||||||
with client.nested("waiting for SSH server to come up"):
|
with client.nested("waiting for SSH server to come up"):
|
||||||
retry(ssh_is_up)
|
retry(ssh_is_up)
|
||||||
|
|
||||||
client.succeed(
|
msg = client.succeed(
|
||||||
"echo somepass | ssh -i /etc/sshKey -o UserKnownHostsFile=/etc/knownHosts server 'systemd-tty-ask-password-agent' & exit"
|
"ssh -i /etc/sshKey -o UserKnownHostsFile=/etc/knownHosts server 'cat /etc/msg'"
|
||||||
)
|
)
|
||||||
|
assert "foo" in msg
|
||||||
|
|
||||||
|
server.switch_root()
|
||||||
server.wait_for_unit("multi-user.target")
|
server.wait_for_unit("multi-user.target")
|
||||||
server.succeed("mount | grep '/dev/mapper/root on /'")
|
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue