]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - nixops/modules/ssh/default.nix
Move secrets module outside of nixops
[perso/Immae/Config/Nix.git] / nixops / modules / ssh / default.nix
index b28f6cac6242cce8105529b19e81edb25b3f8dc2..e8d606348bd41c41bf07c544ce730d3deba1d3ef 100644 (file)
@@ -8,17 +8,27 @@
       AuthorizedKeysCommandUser nobody
       '';
 
+    secrets.keys = [{
+      dest = "ssh-ldap";
+      user = "nobody";
+      group = "nogroup";
+      permissions = "0400";
+      text = myconfig.env.sshd.ldap.password;
+    }];
+    system.activationScripts.sshd = {
+      deps = [ "secrets" ];
+      text = ''
+      install -Dm400 -o nobody -g nogroup -T /var/secrets/ssh-ldap /etc/ssh/ldap_password
+      '';
+    };
+    # ssh is strict about parent directory having correct rights, don't
+    # move it in the nix store.
     environment.etc."ssh/ldap_authorized_keys" = let
       ldap_authorized_keys =
         mylibs.wrap {
           name = "ldap_authorized_keys";
           file = ./ldap_authorized_keys.sh;
-          vars = {
-            LDAP_PASS = myconfig.env.sshd.ldap.password;
-            GITOLITE_SHELL = "${pkgs.gitolite}/bin/gitolite-shell";
-            ECHO = "${pkgs.coreutils}/bin/echo";
-          };
-          paths = [ pkgs.openldap pkgs.stdenv.shellPackage pkgs.gnugrep pkgs.gnused pkgs.coreutils ];
+          paths = [ pkgs.which pkgs.gitolite pkgs.openldap pkgs.stdenv.shellPackage pkgs.gnugrep pkgs.gnused pkgs.coreutils ];
         };
     in {
       enable = true;