diff options
| author | Arpit Chakladar <arpitchakladar+git@gmail.com> | 2026-07-29 23:36:51 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar+git@gmail.com> | 2026-07-29 23:36:51 +0530 |
| commit | 357d69f4ce7da70e746c465c8fa32c8d6dbe815e (patch) | |
| tree | f8e6fa3084259df55b48da65d9a7c845017d44ff /modules/security/ssh | |
| parent | 37fb12eee6be551f0ef9b31e2547e115bdeef8e9 (diff) | |
| download | home-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.nix | 16 |
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"; |
