{ ... }: { programs.ssh = { enable = true; forwardAgent = true; serverAliveInterval = 60; controlMaster = "auto"; controlPersist = "30m"; extraConfig = '' IdentityAgent "~/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock" ''; matchBlocks = { "personal" = { hostname = "github.com"; user = "git"; forwardAgent = false; extraOptions = { preferredAuthentications = "publickey"; }; }; "github.com" = { hostname = "github.com"; user = "git"; forwardAgent = false; extraOptions = { preferredAuthentications = "publickey"; }; }; "github.rbx.com" = { hostname = "github.rbx.com"; user = "git"; forwardAgent = false; extraOptions = { preferredAuthentications = "publickey"; }; }; }; }; # Generate ssh agent config for 1Password - I want both my personal and work keys home.file.".config/1Password/ssh/agent.toml".text = '' [[ssh-keys]] account = "my.1password.com" [[ssh-keys]] account = "roblox.1password.com" item = "GitHub ssh key" vault = "Private" ''; }