# nixos-config - My current NixOS configuration # # Copyright (C) 2025 Benedikt Peetz # SPDX-License-Identifier: GPL-3.0-or-later # # This file is part of my nixos-config. # # You should have received a copy of the License along with this program. # If not, see . { config, lib, pkgs, ... }: let cfg = config.soispha.programs.ssh; mkDefaultMatchBlock = UserKnownHostsFile: { AddKeysToAgent = "no"; Compression = true; ControlMaster = "no"; ControlPersist = "no"; ForwardAgent = false; HashKnownHosts = false; ServerAliveCountMax = 3; ServerAliveInterval = 240; inherit UserKnownHostsFile; }; in { options.soispha.programs.ssh = { enable = lib.mkEnableOption "ssh config"; }; config = lib.mkIf cfg.enable { home-manager.users.soispha.programs.ssh = { enable = true; enableDefaultConfig = false; settings = { "Host *" = mkDefaultMatchBlock "${config.home-manager.users.soispha.xdg.dataHome}/ssh/known_hosts"; "Host *.your-storagebox.de" = { # Port 22 is for sftp, and when we connect as user, we probably want an # interactive shell. Port = 23; }; }; }; }; }