Преглед на файлове

feat(ssh+gpg): making gnupg and ssh agent forwarding work

Zander Hawke преди 9 месеца
родител
ревизия
6dbb5f47b2
променени са 4 файла, в които са добавени 30 реда и са изтрити 18 реда
  1. 3 3
      home/features/cli/gnupg.nix
  2. 14 15
      home/features/cli/ssh.nix
  3. 2 0
      home/features/core.nix
  4. 11 0
      home/meili.nix

+ 3 - 3
home/features/cli/gnupg.nix

@@ -30,8 +30,8 @@ in
     enable = lib.mkDefault true;
     defaultCacheTtl = 600;
     maxCacheTtl = 7200;
-    pinentry.package = pkgs.pinentry-gtk2;
-    enableExtraSocket = true;
-    enableSshSupport = true;
+    pinentry.package = lib.mkDefault pkgs.pinentry-tty;
+    enableExtraSocket = lib.mkDefault true;
+    enableSshSupport = lib.mkDefault true;
   };
 }

+ 14 - 15
home/features/cli/ssh.nix

@@ -1,29 +1,28 @@
-{ config
-, lib
-, ...
-}:
-let
-  configHome = "${config.xdg.configHome}/gnupg";
-in
 {
-  home.sessionVariables = {
-    SSH_AUTH_SOCK = lib.mkDefault "${configHome}/S.gpg-agent.ssh";
-  };
-
   programs.ssh = {
     enable = true;
-    compression = true;
-    forwardAgent = true;
+    enableDefaultConfig = false;
 
     extraConfig = ''
       StreamLocalBindUnlink yes
     '';
 
+    matchBlocks."*" = {
+      forwardAgent = true;
+      compression = true;
+      serverAliveInterval = 0;
+      serverAliveCountMax = 3;
+      hashKnownHosts = false;
+      userKnownHostsFile = "~/.ssh/known_hosts";
+    };
+
     matchBlocks = {
-      "github.com".user = "git";
-      "codeberg.org".user = "git";
       github.hostname = "github.com";
+      github.user = "git";
       codeberg.hostname = "codeberg.org";
+      codeberg.user = "git";
+      "github.com".user = "git";
+      "codeberg.org".user = "git";
     };
   };
 }

+ 2 - 0
home/features/core.nix

@@ -27,6 +27,8 @@
       fd
       ripgrep
       wget
+      git
+      vim
     ];
 
     sessionVariables = {

+ 11 - 0
home/meili.nix

@@ -1,4 +1,15 @@
+{ config
+, lib
+, ...
+}:
+let
+  configHome = "${config.xdg.configHome}/gnupg";
+in
 {
+  home.sessionVariables = {
+    SSH_AUTH_SOCK = lib.mkDefault "${configHome}/S.gpg-agent.ssh";
+  };
+
   imports = [
     ./features/core.nix