{ config, lib, pkgs, inputs, ... }: with lib; { config = mkMerge [ (mkIf config.nathan.programs.util.ssh { ######################### ## SSH Configuration ######################### programs.ssh = { # SSH configuration enable = true; # extra config to set the ciphers extraConfig = '' Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr ''; # Enable compression compression = true; # enable session reuse controlMaster = "auto"; controlPersist = "10m"; # Configure known hosts matchBlocks = { "levitation" = { forwardAgent = true; user = "nathan"; hostname = "100.95.223.6"; }; "perception" = { forwardAgent = true; user = "nathan"; hostname = "100.121.150.78"; }; "oracles" = { forwardAgent = true; user = "nathan"; hostname = "100.66.15.34"; }; "tounge" = { forwardAgent = true; user = "nathan"; hostname = "100.75.37.98"; }; "universe" = { forwardAgent = true; user = "nathan"; hostname = "100.93.40.58"; }; "shadowchild" = { forwardAgent = true; user = "nathan"; hostname = "172.23.217.149"; }; "fusion" = { forwardAgent = true; user = "nathan"; hostname = "100.99.69.14"; }; "pendulum" = { forwardAgent = true; user = "nathan"; hostname = "100.105.41.106"; }; "de1955" = { user = "de1955"; hostname = "de1955.rsync.net"; }; }; }; }) ]; }