···
566
-
{ description = "SSH Daemon";
567
-
wantedBy = lib.optional (!cfg.startWhenNeeded) "multi-user.target";
568
-
after = [ "network.target" "sshd-keygen.service" ];
569
-
wants = [ "sshd-keygen.service" ];
570
-
stopIfChanged = false;
571
-
path = [ cfg.package ];
572
-
environment.LD_LIBRARY_PATH = nssModulesPath;
574
-
restartTriggers = lib.optionals (!cfg.startWhenNeeded) [
575
-
config.environment.etc."ssh/sshd_config".source
580
-
(lib.optionalString cfg.startWhenNeeded "-") +
581
-
"${cfg.package}/bin/sshd " + (lib.optionalString cfg.startWhenNeeded "-i ") +
582
-
"-D " + # don't detach into a daemon process
583
-
"-f /etc/ssh/sshd_config";
584
-
KillMode = "process";
585
-
} // (if cfg.startWhenNeeded then {
586
-
StandardInput = "socket";
587
-
StandardError = "journal";
589
-
Restart = "always";
sockets.sshd = lib.mkIf cfg.startWhenNeeded {
description = "SSH Socket";
···
# Prevent brute-force attacks from shutting down socket
socketConfig.TriggerLimitIntervalSec = 0;
610
-
services."sshd@" = lib.mkIf cfg.startWhenNeeded service;
611
-
services.sshd = lib.mkIf (! cfg.startWhenNeeded) service;
581
+
services."sshd@" = {
582
+
description = "SSH per-connection Daemon";
583
+
after = [ "network.target" "sshd-keygen.service" ];
584
+
wants = [ "sshd-keygen.service" ];
585
+
stopIfChanged = false;
586
+
path = [ cfg.package ];
587
+
environment.LD_LIBRARY_PATH = nssModulesPath;
591
+
ExecStart = lib.concatStringsSep " " [
592
+
"-${lib.getExe' cfg.package "sshd"}"
595
+
"-f /etc/ssh/sshd_config"
597
+
KillMode = "process";
598
+
StandardInput = "socket";
599
+
StandardError = "journal";
603
+
services.sshd = lib.mkIf (! cfg.startWhenNeeded) {
604
+
description = "SSH Daemon";
605
+
wantedBy = [ "multi-user.target" ];
606
+
after = [ "network.target" "sshd-keygen.service" ];
607
+
wants = [ "sshd-keygen.service" ];
608
+
stopIfChanged = false;
609
+
path = [ cfg.package ];
610
+
environment.LD_LIBRARY_PATH = nssModulesPath;
612
+
restartTriggers = [ config.environment.etc."ssh/sshd_config".source ];
616
+
Restart = "always";
617
+
ExecStart = lib.concatStringsSep " " [
618
+
(lib.getExe' cfg.package "sshd")
620
+
"-f" "/etc/ssh/sshd_config"
622
+
KillMode = "process";
description = "SSH Host Keys Generation";