Es darf nur SSH Protokol Version 2 erlaubt werden, die veraltete Version 1 darf nicht mehr verwendet werden.
# file: /etc/ssh/sshd_config Protocol 2
Exkurs: Einstellung kryptographischer Verfahren
Die Auswahl der kryptographischen Verfahren soll nach dem Stand der Technik (oder kann nach dem Stand der Wissenschaft) erfolgen und regelmäßig neu bewertet werden. Hierbei kann man sich an den Hinweisen von https://cipherli.st orientieren.
Es sollen nur starke Host-Schlüssel für die Authentifizierung des Hosts verwendet werden. Andere Schlüssel sollen aus der Konfiguration gelöscht werden.
# file: /etc/ssh/sshd_config HostKey /etc/ssh/ssh_host_ed25519_key HostKey /etc/ssh/ssh_host_rsa_key
Bereits existierende Schlüssel sollen gelöscht und neu erstellt werden.
cd /etc/ssh rm ssh_host_*key* ssh-keygen -t ed25519 -q -N "" -f ssh_host_ed25519_key ssh-keygen -t rsa -b 4096 -q -N "" -f ssh_host_rsa_key
Die folgenden Verschlüsselungsalgorithmen werden vorgeschlagen (Stand: 01.02.2017):
# file: /etc/ssh/sshd_config Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com, aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256 MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com, hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512, hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com
Um einen sicheren Schlüsseltausch zu gewährleisten, sollten zu kleine Generatoren entfernt werden.
awk '$5 > 2000' /etc/ssh/moduli > "/etc/ssh/moduli.safe" mv /etc/ssh/moduli.safe /etc/ssh/moduli
Sollte die Datei `/etc/ssh/moduli` nicht existieren oder leer sein, so kann man sie folgendermaßen erstellen (dauert u.U. mehrere Stunden).
ssh-keygen -G /etc/ssh/moduli.all -b 4096 ssh-keygen -T /etc/ssh/moduli.safe -f /etc/ssh/moduli.all mv /etc/ssh/moduli.safe /etc/ssh/moduli rm /etc/ssh/moduli.all
Auch Clients sollten ausschließlich starke Verschlüsselung verwenden.
# file: /etc/ssh/ssh_config HashKnownHosts yes ConnectTimeout 30 KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256 MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com, hmac-ripemd160-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512, hmac-sha2-256,hmac-ripemd160,umac-128@openssh.com Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com, aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr ServerAliveInterval 10 ControlMaster auto ControlPersist yes ControlPath ~/.ssh/socket-%r@%h:%p