nixos/roles/home/ssh.nix
2025-07-14 10:00:41 +01:00

80 lines
1.6 KiB
Nix

{ 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 ""}
'';
};
}