diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix index e9ad47adec9e..87a00497621a 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. - ''; - }; - }; }; };