0 macOS 13 (Ventura) & 14 (Sonoma)
Bas edited this page 2024-01-17 10:37:13 +01:00

The community has indicated that the following instructions work for macOS 13 (Ventura) and 14 (Sonoma).

Note: all commands below are to be executed as the root user.

  1. Re-generate the RSA and ED25519 keys
rm /etc/ssh/ssh_host_*
ssh-keygen -t rsa -b 4096 -f /etc/ssh/ssh_host_rsa_key -N ""
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
  1. Remove small Diffie-Hellman moduli
awk '$5 >= 3071' /etc/ssh/moduli > /etc/ssh/moduli.safe
mv /etc/ssh/moduli.safe /etc/ssh/moduli
  1. Enable the RSA and ED25519 keys Enable the RSA and ED25519 HostKey directives in the /etc/ssh/sshd_config file:
sed -i .orig 's/^\#HostKey \/etc\/ssh\/ssh_host_rsa_key/HostKey \/etc\/ssh\/ssh_host_rsa_key/' /etc/ssh/sshd_config
sed -i .orig 's/^\#HostKey \/etc\/ssh\/ssh_host_ed25519_key/HostKey \/etc\/ssh\/ssh_host_ed25519_key/' /etc/ssh/sshd_config
  1. Restrict supported key exchange, cipher, and MAC algorithms
echo '
# Restrict key exchange, cipher, and MAC algorithms, as per sshaudit.com
# hardening guide.
KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256
Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,umac-128-etm@openssh.com
HostKeyAlgorithms ssh-ed25519,rsa-sha2-512,rsa-sha2-256' > /etc/ssh/sshd_config.d/99_hardening.conf
  1. Restart OpenSSH server
sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd

Validated versions

macOS ssh-audit
Sonoma 14.0 master @ 02ab487232de438c0811116f2676cb1c9b5f3d62