aboutsummaryrefslogtreecommitdiffstats
path: root/modules/security/ssh/git.nix
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-24 21:53:14 +0530
committerArpit Chakladar <arpitchakladar+git@gmail.com>2026-07-24 21:53:14 +0530
commit57dc86b062d73446de2f26875ee7b950f1db8ea3 (patch)
treefb341d50baeed327862c90aa1ccca123397c3867 /modules/security/ssh/git.nix
parent5032239a236595451f22ea948c42281f8aa04645 (diff)
downloadhome-manager-config-57dc86b062d73446de2f26875ee7b950f1db8ea3.tar.gz
home-manager-config-57dc86b062d73446de2f26875ee7b950f1db8ea3.zip
feat(gopass): load SSH keys from gopass for git platforms
- Add security.gopass.ssh-agent.enable option - Create gopass-ssh-load systemd oneshot service - Remove identityFile and placeholder files from SSH git host configs - Enable ssh-agent for the user
Diffstat (limited to 'modules/security/ssh/git.nix')
-rw-r--r--modules/security/ssh/git.nix38
1 files changed, 6 insertions, 32 deletions
diff --git a/modules/security/ssh/git.nix b/modules/security/ssh/git.nix
index 88bd713..23b52ab 100644
--- a/modules/security/ssh/git.nix
+++ b/modules/security/ssh/git.nix
@@ -2,48 +2,22 @@
{ config, lib, ... }:
let
hosts = [
- {
- domain = "github.com";
- identityName = "github";
- }
- {
- domain = "gitlab.com";
- identityName = "gitlab";
- }
- {
- domain = "bitbucket.org";
- identityName = "bitbucket";
- }
- {
- domain = "codeberg.org";
- identityName = "codeberg";
- }
- {
- domain = "git.sr.ht";
- identityName = "sourcehut";
- }
+ "github.com"
+ "gitlab.com"
+ "bitbucket.org"
+ "codeberg.org"
+ "git.sr.ht"
];
mkGitHost =
- { domain, identityName }:
+ domain:
lib.nameValuePair domain {
hostname = domain;
user = "git";
- identityFile = "${config.home.homeDirectory}/.local/share/ssh/git/${identityName}";
- };
-
- mkKeyFile =
- { identityName, ... }:
- lib.nameValuePair identityName {
- enable = true;
- text = "";
- force = false;
};
in
{
config = lib.mkIf (config.security.ssh.enable && config.development.git.useSSH) {
- home.file = builtins.listToAttrs (map mkKeyFile hosts);
-
programs.ssh.settings = builtins.listToAttrs (map mkGitHost hosts);
};
}