From 7c6ff6c1da65684137d9c3554540720f2f28e6cd Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 27 Aug 2015 15:29:05 +0200 Subject: [PATCH] programs.ssh.knownHosts: Use submodule --- nixos/modules/programs/ssh.nix | 69 +++++++++++++++++----------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix index e9ad47adec9..87a00497621 100644 --- a/nixos/modules/programs/ssh.nix +++ b/nixos/modules/programs/ssh.nix @@ -102,7 +102,41 @@ in knownHosts = mkOption { default = {}; - type = types.loaOf types.optionSet; + type = types.loaOf (types.submodule { + options = { + hostNames = mkOption { + type = types.listOf types.str; + default = []; + description = '' + A list of host names and/or IP numbers used for accessing + the host's ssh service. + ''; + }; + publicKey = mkOption { + default = null; + type = types.nullOr types.str; + example = "ecdsa-sha2-nistp521 AAAAE2VjZHN...UEPg=="; + description = '' + The public key data for the host. You can fetch a public key + from a running SSH server with the ssh-keyscan + command. The public key should not include any host names, only + the key type and the key itself. + ''; + }; + publicKeyFile = mkOption { + default = null; + type = types.nullOr types.path; + description = '' + The path to the public key file for the host. The public + key file is read at build time and saved in the Nix store. + You can fetch a public key file from a running SSH server + with the ssh-keyscan command. The content + of the file should follow the same format as described for + the publicKey option. + ''; + }; + }; + }); description = '' The set of system-wide known SSH hosts. ''; @@ -116,39 +150,6 @@ in publicKeyFile = literalExample "./pubkeys/myhost2_ssh_host_dsa_key.pub"; } ]; - options = { - hostNames = mkOption { - type = types.listOf types.str; - default = []; - description = '' - A list of host names and/or IP numbers used for accessing - the host's ssh service. - ''; - }; - publicKey = mkOption { - default = null; - type = types.nullOr types.str; - example = "ecdsa-sha2-nistp521 AAAAE2VjZHN...UEPg=="; - description = '' - The public key data for the host. You can fetch a public key - from a running SSH server with the ssh-keyscan - command. The public key should not include any host names, only - the key type and the key itself. - ''; - }; - publicKeyFile = mkOption { - default = null; - type = types.nullOr types.path; - description = '' - The path to the public key file for the host. The public - key file is read at build time and saved in the Nix store. - You can fetch a public key file from a running SSH server - with the ssh-keyscan command. The content - of the file should follow the same format as described for - the publicKey option. - ''; - }; - }; }; };