aboutsummaryrefslogtreecommitdiffstats
path: root/modules/security/ssh
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-29 23:36:51 +0530
committerArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-29 23:36:51 +0530
commit357d69f4ce7da70e746c465c8fa32c8d6dbe815e (patch)
treef8e6fa3084259df55b48da65d9a7c845017d44ff /modules/security/ssh
parent37fb12eee6be551f0ef9b31e2547e115bdeef8e9 (diff)
downloadhome-manager-config-357d69f4ce7da70e746c465c8fa32c8d6dbe815e.tar.gz
home-manager-config-357d69f4ce7da70e746c465c8fa32c8d6dbe815e.zip
feat(ssh): lazy-loading ssh keys from gopass
- Loading ssh keys from gopass only when ssh command runs for the first time
Diffstat (limited to 'modules/security/ssh')
-rw-r--r--modules/security/ssh/default.nix16
1 files changed, 15 insertions, 1 deletions
diff --git a/modules/security/ssh/default.nix b/modules/security/ssh/default.nix
index 4b4180f..62186c4 100644
--- a/modules/security/ssh/default.nix
+++ b/modules/security/ssh/default.nix
@@ -15,7 +15,21 @@
config = lib.mkIf config.security.ssh.enable {
programs.ssh = {
enable = true;
- package = pkgs.openssh;
+
+ package =
+ if (config.security.gopass.enable or false && config.security.gopass.ssh-agent.enable or false) then
+ pkgs.symlinkJoin {
+ name = "openssh-gopass-wrapper";
+ paths = [ pkgs.openssh ];
+ buildInputs = [ pkgs.makeWrapper ];
+ postBuild = ''
+ wrapProgram $out/bin/ssh \
+ --run "${config.security.gopass.ssh-agent.script}/bin/gopass-ssh-load"
+ '';
+ }
+ else
+ pkgs.openssh;
+
enableDefaultConfig = false;
extraOptionOverrides = {
AddKeysToAgent = "yes";