summary refs log tree commit diff
path: root/nixos/modules/services/networking/ssh/lshd.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/networking/ssh/lshd.nix')
-rw-r--r--nixos/modules/services/networking/ssh/lshd.nix106
1 files changed, 52 insertions, 54 deletions
diff --git a/nixos/modules/services/networking/ssh/lshd.nix b/nixos/modules/services/networking/ssh/lshd.nix
index 81e523fd2a5..661a6a52463 100644
--- a/nixos/modules/services/networking/ssh/lshd.nix
+++ b/nixos/modules/services/networking/ssh/lshd.nix
@@ -117,62 +117,60 @@ in
 
     services.lshd.subsystems = [ ["sftp" "${pkgs.lsh}/sbin/sftp-server"] ];
 
-    jobs.lshd =
-      { description = "GNU lshd SSH2 daemon";
-
-        startOn = "started network-interfaces";
-        stopOn = "stopping network-interfaces";
-
-        environment =
-          { LD_LIBRARY_PATH = config.system.nssModules.path; };
-
-        preStart =
-          ''
-            test -d /etc/lsh || mkdir -m 0755 -p /etc/lsh
-            test -d /var/spool/lsh || mkdir -m 0755 -p /var/spool/lsh
-
-            if ! test -f /var/spool/lsh/yarrow-seed-file
-            then
-                # XXX: It would be nice to provide feedback to the
-                # user when this fails, so that they can retry it
-                # manually.
-                ${lsh}/bin/lsh-make-seed --sloppy \
-                   -o /var/spool/lsh/yarrow-seed-file
-            fi
-
-            if ! test -f "${cfg.hostKey}"
-            then
-                ${lsh}/bin/lsh-keygen --server | \
-                ${lsh}/bin/lsh-writekey --server -o "${cfg.hostKey}"
-            fi
-          '';
-
-        exec = with cfg;
-          ''
-            ${lsh}/sbin/lshd --daemonic \
-              --password-helper="${lsh}/sbin/lsh-pam-checkpw" \
-              -p ${toString portNumber} \
-              ${if interfaces == [] then ""
-                else (concatStrings (map (i: "--interface=\"${i}\"")
-                                         interfaces))} \
-              -h "${hostKey}" \
-              ${if !syslog then "--no-syslog" else ""} \
-              ${if passwordAuthentication then "--password" else "--no-password" } \
-              ${if publicKeyAuthentication then "--publickey" else "--no-publickey" } \
-              ${if rootLogin then "--root-login" else "--no-root-login" } \
-              ${if loginShell != null then "--login-shell=\"${loginShell}\"" else "" } \
-              ${if srpKeyExchange then "--srp-keyexchange" else "--no-srp-keyexchange" } \
-              ${if !tcpForwarding then "--no-tcpip-forward" else "--tcpip-forward"} \
-              ${if x11Forwarding then "--x11-forward" else "--no-x11-forward" } \
-              --subsystems=${concatStringsSep ","
-                                              (map (pair: (head pair) + "=" +
-                                                          (head (tail pair)))
-                                                   subsystems)}
-          '';
+    systemd.services.lshd = {
+      description = "GNU lshd SSH2 daemon";
+
+      after = [ "network-interfaces.target" ];
+
+      wantedBy = [ "multi-user.target" ];
+
+      environment = {
+        LD_LIBRARY_PATH = config.system.nssModules.path;
       };
 
-    security.pam.services.lshd = {};
+      preStart = ''
+        test -d /etc/lsh || mkdir -m 0755 -p /etc/lsh
+        test -d /var/spool/lsh || mkdir -m 0755 -p /var/spool/lsh
+
+        if ! test -f /var/spool/lsh/yarrow-seed-file
+        then
+            # XXX: It would be nice to provide feedback to the
+            # user when this fails, so that they can retry it
+            # manually.
+            ${lsh}/bin/lsh-make-seed --sloppy \
+               -o /var/spool/lsh/yarrow-seed-file
+        fi
+
+        if ! test -f "${cfg.hostKey}"
+        then
+            ${lsh}/bin/lsh-keygen --server | \
+            ${lsh}/bin/lsh-writekey --server -o "${cfg.hostKey}"
+        fi
+      '';
+
+      script = with cfg; ''
+        ${lsh}/sbin/lshd --daemonic \
+          --password-helper="${lsh}/sbin/lsh-pam-checkpw" \
+          -p ${toString portNumber} \
+          ${if interfaces == [] then ""
+            else (concatStrings (map (i: "--interface=\"${i}\"")
+                                     interfaces))} \
+          -h "${hostKey}" \
+          ${if !syslog then "--no-syslog" else ""} \
+          ${if passwordAuthentication then "--password" else "--no-password" } \
+          ${if publicKeyAuthentication then "--publickey" else "--no-publickey" } \
+          ${if rootLogin then "--root-login" else "--no-root-login" } \
+          ${if loginShell != null then "--login-shell=\"${loginShell}\"" else "" } \
+          ${if srpKeyExchange then "--srp-keyexchange" else "--no-srp-keyexchange" } \
+          ${if !tcpForwarding then "--no-tcpip-forward" else "--tcpip-forward"} \
+          ${if x11Forwarding then "--x11-forward" else "--no-x11-forward" } \
+          --subsystems=${concatStringsSep ","
+                                          (map (pair: (head pair) + "=" +
+                                                      (head (tail pair)))
+                                               subsystems)}
+      '';
+    };
 
+    security.pam.services.lshd = {};
   };
-
 }