{ pkgs, ... }: { programs.ssh = { enable = true; compression = true; matchBlocks = { "tommy.devs.giugl.io" = { user = "giulio"; identityFile = "~/.ssh/tommypc"; }; "dodino.devs.giugl.io" = { user = "pi"; identityFile = "~/.ssh/dodino"; }; "git.seclab.cs.ucsb.edu" = { user = "peperunas"; identityFile = "~/.ssh/ucsb"; }; "architect.devs.giugl.io" = { user = "giulio"; identityFile = "~/.ssh/giupi"; forwardAgent = true; }; "architect.devs.giugl.io.boot" = { hostname = "architect.devs.giugl.io"; user = "root"; identityFile = "~/.ssh/giupi"; }; "git.giugl.io" = { user = "gitea"; port = 22; identityFile = "~/.ssh/gitea"; identitiesOnly = true; }; "github.com" = { user = "git"; identityFile = "~/.ssh/github"; }; "manduria.devs.giugl.io" = { user = "giulio"; identityFile = "~/.ssh/imacmanduria"; }; "bitbucket.org" = { identityFile = "~/.ssh/bitbucket"; }; "the.al" = { user = "git"; port = 17002; identityFile = "~/.ssh/alain"; }; "aur.archlinux.org" = { user = "aur"; identityFile = "~/.ssh/aur"; }; }; extraConfig = '' IdentitiesOnly yes ServerAliveInterval 3600 Include config.d/* ${if pkgs.stdenv.isDarwin then '' AddKeysToAgent yes UseKeychain yes TCPKeepAlive no '' else ""} ''; }; }