{ 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.119.205.155"; }; "perception" = { forwardAgent = true; user = "nathan"; hostname = "100.104.25.128"; }; "oracles" = { forwardAgent = true; user = "nathan"; hostname = "100.123.211.72"; }; "tounge" = { forwardAgent = true; user = "nathan"; hostname = "100.89.216.133"; }; "universe" = { forwardAgent = true; user = "nathan"; hostname = "100.75.76.143"; }; "shadowchild" = { forwardAgent = true; user = "nathan"; hostname = "172.23.217.149"; }; "fusion" = { forwardAgent = true; user = "nathan"; hostname = "100.91.102.137"; }; "pendulum" = { forwardAgent = true; user = "nathan"; hostname = "100.105.41.106"; }; "de1955" = { user = "de1955"; hostname = "de1955.rsync.net"; }; }; }; }) ]; }