diff --git a/modules/home/ssh.nix b/modules/home/ssh.nix index f9b3df5..63211fe 100644 --- a/modules/home/ssh.nix +++ b/modules/home/ssh.nix @@ -1,9 +1,37 @@ +{ username, ... }: { programs.ssh = { + enable = true; + enableDefaultConfig = false; + extraConfig = '' + Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr + ForwardX11 no + ForwardX11Trusted no + HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-rsa-cert-v01@openssh.com,ssh-ed25519,ssh-rsa + KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256 + MACS hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com + Port 22 + Protocol 2 + PubkeyAuthentication yes + VerifyHostKeyDNS yes + ''; + includes = [ "/home/${username}/config.d/*" ]; matchBlocks = { "github.com gitlab.com" = { user = "git"; }; + "*" = { + addKeysToAgent = "yes"; + compression = true; + controlMaster = "no"; + controlPath = "~/.ssh/master-%r@%n:%p"; + controlPersist = "no"; + forwardAgent = false; + hashKnownHosts = false; + # ServerAliveCountMax = 5; + # ServerAliveInterval = 15; + userKnownHostsFile = "~/.ssh/known_hosts"; + }; }; }; }