[Devbox] Set up ssh-agent-switcher.

Signed-off-by: jmug <u.g.a.mariano@gmail.com>
This commit is contained in:
Mariano Uvalle 2025-06-05 01:14:05 -07:00
parent 4d508688fa
commit f41a88f84e
3 changed files with 87 additions and 13 deletions

74
flake.lock generated
View file

@ -84,6 +84,24 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"ghostty": { "ghostty": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
@ -299,6 +317,22 @@
} }
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": {
"lastModified": 1749086602,
"narHash": "sha256-DJcgJMekoxVesl9kKjfLPix2Nbr42i7cpEHJiTnBUwU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4792576cb003c994bd7cc1edada3129def20b27d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1747542820, "lastModified": 1747542820,
"narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=", "narHash": "sha256-GaOZntlJ6gPPbbkTLjbd8BMWaDYafhuuYRNrxCGnPJw=",
@ -327,6 +361,7 @@
"nixpkgs-msft-go": "nixpkgs-msft-go", "nixpkgs-msft-go": "nixpkgs-msft-go",
"nixpkgs-unstable": "nixpkgs-unstable_2", "nixpkgs-unstable": "nixpkgs-unstable_2",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"ssh-agent-switcher": "ssh-agent-switcher",
"walker": "walker" "walker": "walker"
} }
}, },
@ -350,6 +385,26 @@
"type": "github" "type": "github"
} }
}, },
"ssh-agent-switcher": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1749108251,
"narHash": "sha256-1tXo21//5Mmy1zfyQoRcaTM6uuK4WHAtFq6PpoCExkY=",
"owner": "AYM1607",
"repo": "ssh-agent-switcher",
"rev": "6cd7ce973cf08656d42e475945216d8c0f0b0c7b",
"type": "github"
},
"original": {
"owner": "AYM1607",
"repo": "ssh-agent-switcher",
"rev": "6cd7ce973cf08656d42e475945216d8c0f0b0c7b",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
@ -366,6 +421,21 @@
} }
}, },
"systems_2": { "systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@ -382,8 +452,8 @@
}, },
"walker": { "walker": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"systems": "systems_2" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1748171996, "lastModified": 1748171996,

View file

@ -38,8 +38,8 @@
# ssh-agent forwarder for linux. # ssh-agent forwarder for linux.
ssh-agent-switcher = { ssh-agent-switcher = {
url = "github:AYM1607/ssh-agent-switcher/6cd7ce973cf08656d42e475945216d8c0f0b0c7b" url = "github:AYM1607/ssh-agent-switcher/6cd7ce973cf08656d42e475945216d8c0f0b0c7b";
} };
}; };
outputs = { outputs = {
@ -100,6 +100,7 @@
./hosts/devbox/configuration.nix ./hosts/devbox/configuration.nix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager.extraSpecialArgs = { inherit inputs ssh-agent-switcher; };
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.users.jmug = import ./hosts/devbox/home.nix; home-manager.users.jmug = import ./hosts/devbox/home.nix;

View file

@ -1,5 +1,4 @@
{ inputs, config, pkgs, ... } : { inputs, config, pkgs, ssh-agent-switcher, ... } :
{ {
imports = [ imports = [
@ -28,13 +27,6 @@
exercism exercism
# Thin provisioning tools # Thin provisioning tools
thin-provisioning-tools thin-provisioning-tools
pkgs.writeShellApplication {
name = "sas";
runtimeInputs = [ inputs.ssh-agent-switcher.aarch64-linux.default ];
text = ''
ssh-agent-switcher
'';
}
]; ];
stateVersion = "24.11"; stateVersion = "24.11";
@ -52,6 +44,17 @@
# TODO: Interpolate the name of the host here. # TODO: Interpolate the name of the host here.
nrsw = "sudo nixos-rebuild switch --flake /home/jmug/nixos#devbox"; nrsw = "sudo nixos-rebuild switch --flake /home/jmug/nixos#devbox";
}; };
loginExtra = ''
if [ ! -e "/tmp/ssh-agent.''${USER}" ]; then
if [ -n "''${ZSH_VERSION}" ]; then
eval ${ssh-agent-switcher.packages.x86_64-linux.default}/bin/ssh-agent-switcher 2>/dev/null "&!"
else
${ssh-agent-switcher.packages.x86_64-linux.default}/bin/ssh-agent-switcher 2>/dev/null &
disown 2>/dev/null || true
fi
fi
export SSH_AUTH_SOCK="/tmp/ssh-agent.''${USER}"
'';
}; };
services.ssh-agent.enable = true; services.ssh-agent.enable = true;