diff --git a/base.nix b/base.nix
index 904a8dd..87447b1 100644
--- a/base.nix
+++ b/base.nix
@@ -2,25 +2,26 @@
 
 {
 
-  imports = [ 
+  imports = [
     ./users/default.nix
-    ./users/julien.nix 
+    ./users/julien.nix
   ];
   luj.nix.enable = true;
+  luj.secrets.enable = true;
+  luj.ssh-server.enable = true;
 
   sops.defaultSopsFile = ./secrets/secrets.yaml;
-  sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key"];
+  sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
 
   time.timeZone = "Europe/Paris";
-    i18n.defaultLocale = "en_US.UTF-8";
-    console = {
-        font = "Lat2-Terminus16";
-        keyMap = "fr";
-    };
+  i18n.defaultLocale = "en_US.UTF-8";
+  console = {
+    font = "Lat2-Terminus16";
+    keyMap = "fr";
+  };
 
-   
-    services.openssh.enable = true;
-    programs.mosh.enable = true;
-    programs.gnupg.agent.enable = true;
+
+  programs.mosh.enable = true;
+  programs.gnupg.agent.enable = true;
 
 }
diff --git a/home-manager-modules/mails/default.nix b/home-manager-modules/mails/default.nix
index d60f5f9..219a8df 100644
--- a/home-manager-modules/mails/default.nix
+++ b/home-manager-modules/mails/default.nix
@@ -29,7 +29,7 @@ with lib;
           msmtp.enable = true;
           primary = true;
           realName = "Julien Malka";
-          passwordCommand = "${pkgs.gnupg}/bin/gpg -q --batch --passphrase-file /home/julien/email-passphrase -d ${./ens.pass.gpg}";
+          passwordCommand = "cat /home/julien/.config/ens-mail-passwd";
           smtp = {
             host = "clipper.ens.fr";
           };
diff --git a/home-manager-modules/neovim/default.nix b/home-manager-modules/neovim/default.nix
index e7d5ad9..3d12ea2 100644
--- a/home-manager-modules/neovim/default.nix
+++ b/home-manager-modules/neovim/default.nix
@@ -54,6 +54,7 @@ with lib;
         rnix-lsp
         tree-sitter
         sumneko-lua-language-server
+        ripgrep
       ];
       extraConfig = ''
         luafile ${./lua}/lsp.lua
diff --git a/home-manager-modules/ssh-client/default.nix b/home-manager-modules/ssh-client/default.nix
new file mode 100644
index 0000000..c000b2a
--- /dev/null
+++ b/home-manager-modules/ssh-client/default.nix
@@ -0,0 +1,37 @@
+{ config, pkgs, lib, ... }:
+let
+  cfg = config.luj.programs.ssh-client;
+in
+with lib;
+{
+  options.luj.programs.ssh-client = {
+    enable = mkEnableOption "Enable ssh client";
+  };
+
+  config = mkIf cfg.enable {
+    programs.ssh = {
+      enable = true;
+      matchBlocks = {
+        newton = {
+          hostname = "newton.julienmalka.me";
+          user = "julien";
+          port = 45;
+        };
+        lisa = {
+          hostname = "2a01:e0a:5f9:9681:5880:c9ff:fe9f:3dfb";
+          user = "julien";
+#          port = 45;
+        };
+        newton-init = {
+          hostname = "newton.julienmalka.me";
+          user = "root";
+          port = 2222;
+        };
+        sas = {
+          hostname = "sas.eleves.ens.fr";
+          user = "jmalka";
+        };
+      };
+    };
+  };
+}
diff --git a/machines/lisa/home-julien.nix b/machines/lisa/home-julien.nix
index 41a3e3b..fe74320 100644
--- a/machines/lisa/home-julien.nix
+++ b/machines/lisa/home-julien.nix
@@ -2,6 +2,7 @@
 {
  luj.hmgr.julien = {
     luj.programs.neovim.enable = true;
+    luj.programs.ssh-client.enable = true;
     luj.programs.git.enable = true;
   };
 }
diff --git a/machines/macintosh/home-julien.nix b/machines/macintosh/home-julien.nix
index 3c3a87a..d26d10a 100644
--- a/machines/macintosh/home-julien.nix
+++ b/machines/macintosh/home-julien.nix
@@ -3,6 +3,7 @@
 
   luj.hmgr.julien = {
     luj.programs.neovim.enable = true;
+    luj.programs.ssh-client.enable = true;
     luj.i3.enable = true;
     luj.polybar.enable = true;
     home.packages = with pkgs; [
@@ -28,6 +29,7 @@
       ctags
       ungoogled-chromium
       networkmanagerapplet
+      sops
     ];
 
 
diff --git a/machines/newton/home-julien.nix b/machines/newton/home-julien.nix
index 359b973..0c22622 100644
--- a/machines/newton/home-julien.nix
+++ b/machines/newton/home-julien.nix
@@ -3,6 +3,7 @@
   luj.hmgr.julien = {
     luj.programs.neovim.enable = true;
     luj.programs.git.enable = true;
+    luj.programs.ssh-client.enable = true;
     luj.emails = {
       enable = true;
       backend.enable = true;
diff --git a/modules/hmgr/default.nix b/modules/hmgr/default.nix
index 220ec6b..0c9e32b 100644
--- a/modules/hmgr/default.nix
+++ b/modules/hmgr/default.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, lib, ... }:
+{ config, pkgs, lib, inputs, ... }:
 let
   cfg = config.luj.hmgr;
 in
@@ -13,7 +13,7 @@ with lib;
       lib.mapAttrs
         (name: value:
           {
-            imports = with builtins; map (x: ../../home-manager-modules + "/${x}/default.nix") (attrNames (readDir ../../home-manager-modules)); 
+            imports = with builtins; (map (x: ../../home-manager-modules + "/${x}/default.nix") (attrNames (readDir ../../home-manager-modules))); 
             home.username = "${name}";
             home.homeDirectory = "/home/${name}";
             home.stateVersion = "21.11";
diff --git a/modules/secrets/default.nix b/modules/secrets/default.nix
new file mode 100644
index 0000000..a03e70c
--- /dev/null
+++ b/modules/secrets/default.nix
@@ -0,0 +1,23 @@
+{ pkgs, config, lib, inputs, ... }:
+let
+  cfg = config.luj.secrets;
+in
+with lib;
+{
+  options.luj.secrets = {
+    enable = mkEnableOption "Create secrets";
+  };
+
+  config = mkIf cfg.enable
+    {
+      sops.secrets.ens-mail-passwd = {
+        owner = "julien";
+        path = "/home/julien/.config/ens-mail-passwd";
+      };
+
+      sops.secrets.sendinblue-mail-passwd = {};
+      
+      };
+
+
+}
diff --git a/modules/ssh-server/default.nix b/modules/ssh-server/default.nix
new file mode 100644
index 0000000..7d45459
--- /dev/null
+++ b/modules/ssh-server/default.nix
@@ -0,0 +1,21 @@
+{ pkgs, config, lib, inputs, ... }:
+let
+  cfg = config.luj.ssh-server;
+in
+with lib;
+{
+  options.luj.ssh-server = {
+    enable = mkEnableOption "Accept ssh connections";
+  };
+
+  config = mkIf cfg.enable
+    {
+      services.openssh = {
+        enable = true;
+        ports = [ 45 ];
+        passwordAuthentication = false;
+        permitRootLogin = "no";
+        openFirewall = true;
+      };
+    };
+}
diff --git a/modules/zfs-mails/default.nix b/modules/zfs-mails/default.nix
index 37b0dbc..83cb6f5 100644
--- a/modules/zfs-mails/default.nix
+++ b/modules/zfs-mails/default.nix
@@ -8,7 +8,7 @@ let
     host = "smtp-relay.sendinblue.com";
     port = "587";
     user = "julien.malka@me.com";
-    passwordeval = "${pkgs.gnupg}/bin/gpg -q --batch --passphrase-file /home/julien/email-passphrase -d ${./sendinblue.pass.gpg}";
+    passwordeval = "cat /run/secrets/sendinblue-mail-passwd";
     from = emailFrom;
   };
 
diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml
index 105c138..0499728 100644
--- a/secrets/secrets.yaml
+++ b/secrets/secrets.yaml
@@ -1,5 +1,7 @@
 user-julien-password: ENC[AES256_GCM,data:v1mzJTqMTIVcy/qTV6s98/RVjlDSKj/HPTpawRv5PbL8OVszjO9IJKRlNJJfzNZ9o3euVV8bhGvaHRkoqLhflp1ULpCqZ/uLeDXbCG700Hlr61jahyYA1vDORl4QXTm+b4hhyGc4xrExHg==,iv:Gv6y9DnKuxVz+QxSIW9IVCv9DdU5cA6+WR/OSA0SNfQ=,tag:sEIqwf24eYbpevnUlXxOkg==,type:str]
 user-root-password: ENC[AES256_GCM,data:RPdunJvhHm7jKVCjtUEjrWvICCMUy/iMNgu/ApE+X04xnQUzI16+utlhEyJreRUzqu/qjV76Iep+WC8Bqn3XOEHSFOKxTqhwrbrgBX52zwVzDFUTGsLYMp9vLazl69qwB41rokpC35hcTA==,iv:062Qn5BkGC+McSSCjNXeSPZ+r2KgrYEuDq/PHf87nac=,tag:HdOWNw1iS3XoLm8CfDcTvQ==,type:str]
+ens-mail-passwd: ENC[AES256_GCM,data:NLJ2D09xUNXVdA==,iv:rql17Ox9QIVtfkZWUS7+M3rgEOOd02hn390zNdSBAj0=,tag:SbajW6RjNWIJsiikFMliww==,type:str]
+sendinblue-mail-passwd: ENC[AES256_GCM,data:XpB255skeWKwwK2AqMwqEw==,iv:cuS58ISY9J1qMkAAjxWdHpEYHPFBBmCS8hwNX4BBV4w=,tag:dhJSN6ozThH4wKsw8M8Mug==,type:str]
 sops:
     kms: []
     gcp_kms: []
@@ -33,8 +35,8 @@ sops:
             YlZjaTNZL29VcHlReGxWRENobHcyUDgK1518yGevHiTP1WiaIvqeqYBi8Y9ZhoJZ
             okemTbpj3Svv/TVIjKp3iO/KHHPYrCZPOQAmvxf/PP14ahOmEv255g==
             -----END AGE ENCRYPTED FILE-----
-    lastmodified: "2021-12-22T13:06:39Z"
-    mac: ENC[AES256_GCM,data:UuvZbrFbw3/hiU1ETOot172VxQu3+rqy1NzHssqJvq7sZkBKbP9YQq7BaEDBw+uX0ZWnZXontBT7tDoufCtzuuAaCARRupDHYTBq5jKA2eMQFgudTG3Cxs8g/pYgaYDxtMcRzz0b8sXLs0PmLoAewF+qZYNN2rfmMgUePxIcl70=,iv:RuchRXHDuqmhru4gGaepz4szMJLav0zh1GxAN8cpGYI=,tag:eT0//dTSQjBr3+8y7CmyRQ==,type:str]
+    lastmodified: "2021-12-22T14:29:36Z"
+    mac: ENC[AES256_GCM,data:hZtqIZEm71CFkAWZPEBkbxolajds3wqPLW2D+RRVU+3r39IYe65KZe9tC7Jpfscj2XPAf8ay+2Vmhp+e+Ddu8nZe7f2MP2ep3BkQUfdTPTFim6HoIvI2Vis1seyoIKjXai1tJ7TbSH6DwdbXfFubccnWpMgBiSS6om83SRhHhHY=,iv:qOaS+BHhep5mnNTCtZKquFjEJMGwZHaCFTNRNFi1BDI=,tag:xoTXnOCgeAgw3S1zuPEO6w==,type:str]
     pgp: []
     unencrypted_suffix: _unencrypted
     version: 3.7.1
diff --git a/users/julien.nix b/users/julien.nix
index 677e140..ea6d1fb 100644
--- a/users/julien.nix
+++ b/users/julien.nix
@@ -7,7 +7,7 @@
   users.users.julien = {
     isNormalUser = true;
     home = "/home/julien";
-    extraGroups = [ "wheel" "keys"]; 
+    extraGroups = [ "wheel" config.users.groups.keys.name]; 
     shell = pkgs.fish;
     passwordFile = config.sops.secrets.user-julien-password.path;
     openssh.authorizedKeys.keyFiles = [