# SSH Client Configuration
# Managed by Fedpunk SSH module
# User-specific hosts should be in ~/.ssh/config.d/hosts

# Include user's personal host configurations
# These take priority over defaults below
Include ~/.ssh/config.d/hosts

# Default settings for all hosts
Host *
    # Automatically add keys to agent when used
    AddKeysToAgent yes

    # Keep connections alive to prevent timeouts
    ServerAliveInterval 60
    ServerAliveCountMax 3

    # Privacy: Hash hostnames in known_hosts
    HashKnownHosts yes

    # Connection multiplexing - Reuse SSH connections for speed
    # Dramatically speeds up git, ansible, and repeated connections
    ControlMaster auto
    ControlPath ~/.ssh/sockets/%r@%h:%p
    ControlPersist 10m

# Note: Put your host-specific configs in ~/.ssh/config.d/hosts
# Example:
#
# Host myserver
#     HostName example.com
#     User myusername
#     ForwardAgent yes
#
# Use 'fedpunk vault ssh-backup' to backup your hosts file
