Files
config/users/pbsds/home/profiles/minimal/ssh.nix
T
2026-04-19 17:55:34 +02:00

186 lines
7.6 KiB
Nix

{ config, lib, pkgs, ... }:
{
home.shellAliases.tssh = "ssh -t";
home.shellAliases.rssh = "ssh -l root";
home.shellAliases.xssh = "ssh -Y";
programs.bash.initExtra = ''
# ssh autocomplete
if [[ -f ~/.ssh/config ]]; then
complete -W "$(cat ~/.ssh/config | grep "^Host " | cut -d" " -f2- | grep -v '\*')" ssh
complete -W "$(cat ~/.ssh/config | grep "^Host " | cut -d" " -f2- | grep -v '\*')" tssh
complete -W "$(cat ~/.ssh/config | grep "^Host " | cut -d" " -f2- | grep -v '\*')" rssh
complete -W "$(cat ~/.ssh/config | grep "^Host " | cut -d" " -f2- | grep -v '\*')" xssh
complete -W "$(cat ~/.ssh/config | grep "^Host " | cut -d" " -f2- | grep -v '\*')" scp
if command -v remote-init >/dev/null; then
complete -W "$(cat ~/.ssh/config | grep "^Host " | cut -d" " -f2- | grep -v '\*')" remote-init
complete -W "$(cat ~/.ssh/config | grep "^Host " | cut -d" " -f2- | grep -v '\*')" remote-add
fi
fi
'';
programs.ssh.enable = true;
programs.ssh.enableDefaultConfig = false;
# programs.ssh.matchBlocks."*".controlMaster = "yes";
# programs.ssh.matchBlocks."*".compression = true;
programs.ssh.matchBlocks."*" = {
# forwardAgent = false;
# addKeysToAgent = "no";
# serverAliveInterval = 0;
# serverAliveCountMax = 3;
# hashKnownHosts = false;
compression = true;
userKnownHostsFile = "~/.ssh/known_hosts";
controlMaster = "yes";
controlPath = "~/.ssh/master-%r@%n:%p";
controlPersist = "no";
};
programs.ssh.includes = [ "~/.ssh/config.d/*" ];
programs.ssh.matchBlocks = {
"*".serverAliveInterval = 10;
"*".serverAliveCountMax = 3;
"*".setEnv."TERM" = "xterm-256color"; # why u do dis ghostty...
"git.*".forwardX11 = false;
"gogs.*".forwardX11 = false;
"gitea.*".forwardX11 = false;
"github.com".forwardX11 = false;
"gitlab.com".forwardX11 = false;
"*.pbsds.net".forwardX11 = true;
"*.pbsds.net".forwardX11Trusted = true;
"*.tail9aac63.ts.net".forwardX11 = true;
"*.tail9aac63.ts.net".forwardX11Trusted = true;
"*.ntnu.no".user = "pederbs";
"*.pvv.org".user = "pederbs";
# TODO: add fingerprint to known hosts
"*.pvv.org !login.pvv.org".proxyJump = "login.pvv.ntnu.no";
"*.pvv.ntnu.no !login.pvv.ntnu.no".proxyJump = "login.pvv.ntnu.no";
# "*.hpc.ntnu.no".proxyJump = "login.pvv.ntnu.no";
# "*.idi.ntnu.no".proxyJump = "login.pvv.ntnu.no";
# "*.hpc.ntnu.no".proxyJump = "bolle.pbsds.net";
# "*.idi.ntnu.no".proxyJump = "bolle.pbsds.net";
# "*.hpc.ntnu.no".proxyJump = "eple.pbsds.net";
# "*.idi.ntnu.no".proxyJump = "eple.pbsds.net";
"*.hpc.ntnu.no".proxyJump = "eple.tail9aac63.ts.net";
"*.idi.ntnu.no".proxyJump = "eple.tail9aac63.ts.net";
# me
# "knut.pbsds.net".port = 23;
# "nord.pbsds.net".port = 24;
# "sopp.pbsds.net".port = 26;
# "noximilien.pbsds.net" = {};
# "eple.pbsds.net".proxyJump = "login.pvv.ntnu.no";
# "bolle.pbsds.net".proxyJump = "login.pvv.ntnu.no";
"bolle.pbsds.net".forwardX11Trusted = false; # others have access to it
# "garp.pbsds.net".forwardX11Trusted = false; # others have access to it
"eple.pbsds.net".host = "eple.tail9aac63.ts.net";
"garp.pbsds.net".host = "garp.tail9aac63.ts.net";
"knut.pbsds.net".host = "knut.tail9aac63.ts.net";
"nord.pbsds.net".host = "nord.tail9aac63.ts.net";
"sopp.pbsds.net".host = "sopp.tail9aac63.ts.net";
"rocm.pbsds.net".host = "rocm.tail9aac63.ts.net";
"noximilien.pbsds.net".host = "noximilien.tail9aac63.ts.net";
"furiphoneflx1.pbsds.net".user = "furios";
"furiphoneflx1.pbsds.net".host = "furiphoneflx1.tail9aac63.ts.net";
# nixos org
#"aarch64.nixos.community" = {};
# nix-community
#"darwin-build-box.nix-community.org" = {};
# ntnu
"garmr.idi.ntnu.no".forwardX11 = true;
"heid.idi.ntnu.no" = {}; #.forwardX11 = true;
# "idun.hpc.ntnu.no" = {};
# "idun-login1.hpc.ntnu.no" = {};
"idun-login2.hpc.ntnu.no" = {};
"login.stud.ntnu.no" = {};
"malvik.idi.ntnu.no" = {};
"oppdal.idi.ntnu.no" = {};
"selbu.idi.ntnu.no" = {};
"snotra.idi.ntnu.no" = {};
"stud.ntnu.no".hostname = "login.stud.ntnu.no";
# "idun-login1.hpc.ntnu.no" = {};
# "idun-login2.hpc.ntnu.no" = {};
# "snotra-login1.idi.ntnu.no" = {};
"clab01.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab02.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab03.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab04.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab05.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab06.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab07.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab08.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab09.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab10.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab11.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab12.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab13.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab14.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab15.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab16.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab17.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab18.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab19.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab20.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab21.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab22.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab23.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab24.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab25.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
"clab26.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no";
/* "clab27.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no"; */
/* "clab28.idi.ntnu.no".proxyJump = "snotra-login1.idi.ntnu.no"; */
# NVG
"login.nvg.ntnu.no" = {};
# pvv
"balduzius.pvv.ntnu.no".user = "root";
"bekkalokk.pvv.ntnu.no" = {}; # pvv-web pvv-wiki pvv-webmail
"bicep.pvv.ntnu.no" = {}; # pvv-databases pvv-synapse
"brzeczyszczykiewicz.pvv.ntnu.no" = {};
"demiurgen.pvv.ntnu.no" = {};
"drolsum.pvv.ntnu.no" = {};
"dvask-mgmt.pvv.ntnu.no".user = "root";
"eirin.pvv.ntnu.no" = {};
"georg.pvv.ntnu.no" = {};
"git.pvv.ntnu.no" = {};
"login.pvv.ntnu.no" = {};
"orchid.pvv.ntnu.no" = {};
"wegonke.pvv.ntnu.no" = {};
"hildring.pvv.ntnu.no" = {};
"innovation.pvv.ntnu.no".user = "root";
"isvegg.pvv.ntnu.no" = {};
"lommel.pvv.ntnu.no".hostname = "sleipner.pvv.ntnu.no";
"microbel.pvv.ntnu.no" = {};
"principal.pvv.ntnu.no".user = "root";
"shark.pvv.ntnu.no" = {};
"skrott.pvv.ntnu.no".user = "root";
"sleipner.pvv.ntnu.no" = {};
"tallulah.pvv.ntnu.no" = {};
"tom.pvv.ntnu.no" = {};
"toriel.pvv.ntnu.no".user = "root";
# "alphys.pvv.ntnu.no".user = "root";
# "dash8.pvv.ntnu.no" = {};
# "essendrop.pvv.ntnu.no" = {};
# "fenris.pvv.ntnu.no".user = "root";
# "hasub.pvv.ntnu.no" = {};
# "knakelibrak.pvv.ntnu.no" = {};
# "monty.pvv.ntnu.no" = {};
# "nsa.pvv.ntnu.no" = {};
# "skrotnisse.pvv.ntnu.no" = {};
# "spikkjeposche.pvv.ntnu.no" = {};
# "tim.pvv.ntnu.no" = {};
# fyrkat
# "fyrkat.no".hostname = "fridge.fyrkat.no";
# "*.fyrkat.no".proxyJump = "login.pvv.ntnu.no";
"fridge.fyrkat.no".port = 222;
# "fil.fyrkat.no" = {};
};
}