* Added an option "services.openssh.extraConfig" that allows
setting arbitrary options in sshd_config, e.g., services.openssh.extraConfig = "PermitTunnel yes"; svn path=/nixos/trunk/; revision=24341
This commit is contained in:
parent
40df597205
commit
2bb4a618e2
|
@ -8,31 +8,6 @@ let
|
||||||
|
|
||||||
nssModulesPath = config.system.nssModules.path;
|
nssModulesPath = config.system.nssModules.path;
|
||||||
|
|
||||||
sshdConfig = pkgs.writeText "sshd_config"
|
|
||||||
''
|
|
||||||
Protocol 2
|
|
||||||
|
|
||||||
UsePAM yes
|
|
||||||
|
|
||||||
${ concatMapStrings (port : ''Port ${toString port}
|
|
||||||
'') cfg.ports}
|
|
||||||
|
|
||||||
${if cfg.forwardX11 then "
|
|
||||||
X11Forwarding yes
|
|
||||||
XAuthLocation ${pkgs.xlibs.xauth}/bin/xauth
|
|
||||||
" else "
|
|
||||||
X11Forwarding no
|
|
||||||
"}
|
|
||||||
|
|
||||||
${if cfg.allowSFTP then "
|
|
||||||
Subsystem sftp ${pkgs.openssh}/libexec/sftp-server
|
|
||||||
" else "
|
|
||||||
"}
|
|
||||||
|
|
||||||
PermitRootLogin ${cfg.permitRootLogin}
|
|
||||||
GatewayPorts ${cfg.gatewayPorts}
|
|
||||||
'';
|
|
||||||
|
|
||||||
permitRootLoginCheck = v:
|
permitRootLoginCheck = v:
|
||||||
v == "yes" ||
|
v == "yes" ||
|
||||||
v == "without-password" ||
|
v == "without-password" ||
|
||||||
|
@ -102,6 +77,11 @@ in
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
default = "";
|
||||||
|
description = "Verbatim contents of <filename>sshd_config</filename>.";
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -146,10 +126,40 @@ in
|
||||||
|
|
||||||
daemonType = "fork";
|
daemonType = "fork";
|
||||||
|
|
||||||
exec = "${pkgs.openssh}/sbin/sshd -h /etc/ssh/ssh_host_dsa_key -f ${sshdConfig}";
|
exec =
|
||||||
|
''
|
||||||
|
${pkgs.openssh}/sbin/sshd -h /etc/ssh/ssh_host_dsa_key \
|
||||||
|
-f ${pkgs.writeText "sshd_config" cfg.extraConfig}
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = cfg.ports;
|
networking.firewall.allowedTCPPorts = cfg.ports;
|
||||||
|
|
||||||
|
services.openssh.extraConfig =
|
||||||
|
''
|
||||||
|
Protocol 2
|
||||||
|
|
||||||
|
UsePAM yes
|
||||||
|
|
||||||
|
${concatMapStrings (port: ''
|
||||||
|
Port ${toString port}
|
||||||
|
'') cfg.ports}
|
||||||
|
|
||||||
|
${if cfg.forwardX11 then ''
|
||||||
|
X11Forwarding yes
|
||||||
|
XAuthLocation ${pkgs.xlibs.xauth}/bin/xauth
|
||||||
|
'' else ''
|
||||||
|
X11Forwarding no
|
||||||
|
''}
|
||||||
|
|
||||||
|
${optionalString cfg.allowSFTP ''
|
||||||
|
Subsystem sftp ${pkgs.openssh}/libexec/sftp-server
|
||||||
|
''}
|
||||||
|
|
||||||
|
PermitRootLogin ${cfg.permitRootLogin}
|
||||||
|
GatewayPorts ${cfg.gatewayPorts}
|
||||||
|
'';
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue