macOS Sequoia SSH serveur Mac mini M4

phil31000

Membre enregistré
11 Mars 2025
6
0
Bonjour,

Je cherche à configurer SSH sur mon Mac mini pour :
  • obliger l'utilisation de la clé SSH serveur ed25519 et non les autres (rsa, ecdsa,...)
  • désactiver le hash des hostnames dans le fichier "known_hosts"

Malgré quelques recherches et tests infructueux je n'arrive pas à trouver mon bonheur.
 
1.1 Modifier la configuration SSH côté serveur
Éditez le fichier de configuration du serveur SSH :
(Enlève les espaces dans le chemin)

sudo nano / etc / ssh / sshd_config

Et modifier, ajouter ces lignes:

HostKey /etc/ssh/ssh_host_ed25519_key
# Désactiver les autres types de clés
# HostKey /etc/ssh/ssh_host_rsa_key
# HostKey /etc/ssh/ssh_host_ecdsa_key

Une fois le fichier enregistré
Redémarrer le service ssh

sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd

2. Désactiver le hash des hostnames dans “known_hosts”

Pour désactiver cette fonctionnalité, modifier la configuration SSH client :

nano ~/.ssh/config

Ajouter ou modifier les lignes suivantes:

Host *
HashKnownHosts no

Et tu veux faire tout ça dans quel but?
 
Mon but, plutôt mes buts :
  • fortifier l'accès ssh sur mon MAC (ed25519 serait le meilleur des algorithmes)
  • avoir le nom des machines connues en clair et non hashées (question de pratique)

Lors du "sudo launchctl stop com.openssh.sshd" --> Not privileged to stop service. :confused:
Pas de fichier ~/.ssh/config.
 
Redémarrer la machine suffit pour le service sinon, tout simplement.
Et pour le fichier qui existe pas, tu peux simplement le créer.
 
Ce fichier "config" sera uniquement pour mon compte ?
Si oui, comment généraliser cette config pour tous les comptes existants ?
 
Tu as beaucoup de comptes utilisateurs différents sur ton Mac?
C’est un réglage par session utilisateur oui.
 
J'ai 3 comptes oui :
  • mon compte perso
  • 2 comptes "applicatifs", utilisés seulement pour faire du ssh sur mon Mac d'un serveur et faire des actions (backup et checks)

Oups...
Je viens de me rendre compte que les hostnames sont déjà en clairs et non hashés... tellement obnubilé par une interrogation au sujet de Macos.
Mon interrogation :
lorsque je suis dans un terminal avec mon compte et fais un "sudo su" je suis (semble-t-il) devenu root mais sans indication particulière ni dans le home de root... mais si je fais encore un "sudo su" là je vois clairement que je suis root et je suis dans le home de root...
Linuxien, il y a là une subtilité que je n'arrive pas à comprendre...

Et d'autres subtilités qu'il me faut découvrir car malgré que Macos est du linux, c'est du Linux sauce Apple et mes habitudes linuxiennes sont mises à rude épreuve. :sweat_smile:
 
macOS n’est pas Linux, et sudo su et ce genre de commandes ne fonctionnent pas toujours de la même façon.
Il n’y a pas vraiment de compte root utilisable comme sur Linux sur macOS, et je ne vois pas pourquoi tu en aurais besoin non plus.

Sur macOS, tant que ton utilisateur est administrateur, un simple « sudo » suivi de la commande en donnant ton mot de passe sera suffisant. De manière générale, se balader tout le temps en root n’est de toute manière pas vraiment recommandé
 
macOS n’est pas Linux, et sudo su et ce genre de commandes ne fonctionnent pas toujours de la même façon.
Il n’y a pas vraiment de compte root utilisable comme sur Linux sur macOS, et je ne vois pas pourquoi tu en aurais besoin non plus.

Sur macOS, tant que ton utilisateur est administrateur, un simple « sudo » suivi de la commande en donnant ton mot de passe sera suffisant. De manière générale, se balader tout le temps en root n’est de toute manière pas vraiment recommandé
J'avais bien compris que macOS n'était pas Linux, sinon il s’appellerait "maclinux" :sunglasses:
(OK, je sors :point_right:)

C'est 1 peu comme l'OS de mon NAS Synology : basé sur Unix/Linux mais différent de Unix/Linux.

Venant d'un PC sur Ubuntu j'ai juste des habitudes à oublier en arrivant sur macOS, et d'autres à prendre. Mais en tout cas une chose est sûre : aucune déception d'être passé sur macOS.

Merci en tout cas.
 
Et d'autres subtilités qu'il me faut découvrir car malgré que Macos est du linux, c'est du Linux sauce Apple et mes habitudes linuxiennes sont mises à rude épreuve. :sweat_smile:

Il y a plusieurs graphiques qui montrent l'historique des *nix, j'aime bien celui-ci :

Capture d’écran 2025-03-12 à 10.00.14.webp

Plus de détail ici et de lisibilité ici pour le graphique :grinning:
 
Mon but, plutôt mes buts :
  • fortifier l'accès ssh sur mon MAC (ed25519 serait le meilleur des algorithmes)

Si tu veux avoir des infos (très) détaillées, il existe un outil ssh-audit:

"SSH-Audit est conçu pour simplifier ce processus en fournissant une analyse détaillée et des recommandations de configuration adaptées à votre système spécifique. Cet outil analyse la configuration actuelle de votre serveur SSH, identifie les potentielles faiblesses et suggère des améliorations concrètes.Ainsi, même pour les administrateurs moins expérimentés, SSH-Audit est un compagnon indispensable pour naviguer dans les complexités du durcissement d’OpenSSH et assurer une configuration optimale adaptée à votre distribution."

Voila ce que ça donne sur un mac mini M2, on ne le voit pas ici mais il y a des couleurs suivant la sécurité des algorithmes (info, warning, fail, etc.) pour faciliter la lecture:

Bloc de code:
serge@mini-6 ~ % ssh-audit localhost
# general
(gen) banner: SSH-2.0-OpenSSH_9.8
(gen) software: OpenSSH 9.8
(gen) compatibility: OpenSSH 9.6+, Dropbear SSH 2020.79+
(gen) compression: enabled ([email protected])

# key exchange algorithms
(kex) [email protected]    -- [info] available since OpenSSH 8.5
                                            `- [info] default key exchange from OpenSSH 9.0 to 9.8
                                            `- [info] hybrid key exchange based on post-quantum resistant algorithm and proven conventional X25519 algorithm
(kex) curve25519-sha256                     -- [info] available since OpenSSH 7.4, Dropbear SSH 2018.76
                                            `- [info] default key exchange from OpenSSH 7.4 to 8.9
(kex) [email protected]          -- [info] available since OpenSSH 6.4, Dropbear SSH 2013.62
                                            `- [info] default key exchange from OpenSSH 6.5 to 7.3
(kex) ecdh-sha2-nistp256                    -- [fail] using elliptic curves that are suspected as being backdoored by the U.S. National Security Agency
                                            `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp384                    -- [fail] using elliptic curves that are suspected as being backdoored by the U.S. National Security Agency
                                            `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) ecdh-sha2-nistp521                    -- [fail] using elliptic curves that are suspected as being backdoored by the U.S. National Security Agency
                                            `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(kex) diffie-hellman-group-exchange-sha256 (3072-bit) -- [info] available since OpenSSH 4.4
                                                      `- [info] OpenSSH's GEX fallback mechanism was triggered during testing. Very old SSH clients will still be able to create connections using a 2048-bit modulus, though modern clients will use 3072. This can only be disabled by recompiling the code (see https://github.com/openssh/openssh-portable/blob/V_9_4/dh.c#L477).
(kex) diffie-hellman-group16-sha512         -- [info] available since OpenSSH 7.3, Dropbear SSH 2016.73
(kex) diffie-hellman-group18-sha512         -- [info] available since OpenSSH 7.3
(kex) diffie-hellman-group14-sha256         -- [warn] 2048-bit modulus only provides 112-bits of symmetric strength
                                            `- [info] available since OpenSSH 7.3, Dropbear SSH 2016.73
(kex) ext-info-s                            -- [info] available since OpenSSH 9.6
                                            `- [info] pseudo-algorithm that denotes the peer supports RFC8308 extensions
(kex) [email protected]          -- [info] pseudo-algorithm that denotes the peer supports a stricter key exchange method as a counter-measure to the Terrapin attack (CVE-2023-48795)


# host-key algorithms
(key) rsa-sha2-512 (3072-bit)               -- [info] available since OpenSSH 7.2
(key) rsa-sha2-256 (3072-bit)               -- [info] available since OpenSSH 7.2, Dropbear SSH 2020.79
(key) ecdsa-sha2-nistp256                   -- [fail] using elliptic curves that are suspected as being backdoored by the U.S. National Security Agency
                                            `- [warn] using weak random number generator could reveal the key
                                            `- [info] available since OpenSSH 5.7, Dropbear SSH 2013.62
(key) ssh-ed25519                           -- [info] available since OpenSSH 6.5, Dropbear SSH 2020.79

# encryption algorithms (ciphers)
(enc) [email protected]         -- [info] available since OpenSSH 6.5, Dropbear SSH 2020.79
                                            `- [info] default cipher since OpenSSH 6.9
(enc) aes128-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52
(enc) aes192-ctr                            -- [info] available since OpenSSH 3.7
(enc) aes256-ctr                            -- [info] available since OpenSSH 3.7, Dropbear SSH 0.52
(enc) [email protected]                -- [info] available since OpenSSH 6.2
(enc) [email protected]                -- [info] available since OpenSSH 6.2

# message authentication code algorithms
(mac) [email protected]               -- [warn] using small 64-bit tag size
                                            `- [info] available since OpenSSH 6.2
(mac) [email protected]              -- [info] available since OpenSSH 6.2
(mac) [email protected]         -- [info] available since OpenSSH 6.2
(mac) [email protected]         -- [info] available since OpenSSH 6.2
(mac) [email protected]             -- [fail] using broken SHA-1 hash algorithm
                                            `- [info] available since OpenSSH 6.2
(mac) [email protected]                   -- [warn] using encrypt-and-MAC mode
                                            `- [warn] using small 64-bit tag size
                                            `- [info] available since OpenSSH 4.7
(mac) [email protected]                  -- [warn] using encrypt-and-MAC mode
                                            `- [info] available since OpenSSH 6.2
(mac) hmac-sha2-256                         -- [warn] using encrypt-and-MAC mode
                                            `- [info] available since OpenSSH 5.9, Dropbear SSH 2013.56
(mac) hmac-sha2-512                         -- [warn] using encrypt-and-MAC mode
                                            `- [info] available since OpenSSH 5.9, Dropbear SSH 2013.56
(mac) hmac-sha1                             -- [fail] using broken SHA-1 hash algorithm
                                            `- [warn] using encrypt-and-MAC mode
                                            `- [info] available since OpenSSH 2.1.0, Dropbear SSH 0.28

# fingerprints
(fin) ssh-ed25519: SHA256:aU+jOH86e8y47PZ2tkBzw1f55JXMV8pUFDYRZZQuX3c
(fin) ssh-rsa: SHA256:CC4Ot82S2Hy3l0UfItnkeq4Q4SZNn2CSPymMXDrhiNU

# algorithm recommendations (for OpenSSH 9.8)
(rec) -ecdh-sha2-nistp256                   -- kex algorithm to remove
(rec) -ecdh-sha2-nistp384                   -- kex algorithm to remove
(rec) -ecdh-sha2-nistp521                   -- kex algorithm to remove
(rec) -ecdsa-sha2-nistp256                  -- key algorithm to remove
(rec) -hmac-sha1                            -- mac algorithm to remove
(rec) [email protected]            -- mac algorithm to remove
(rec) -diffie-hellman-group14-sha256        -- kex algorithm to remove
(rec) -hmac-sha2-256                        -- mac algorithm to remove
(rec) -hmac-sha2-512                        -- mac algorithm to remove
(rec) [email protected]                 -- mac algorithm to remove
(rec) [email protected]              -- mac algorithm to remove
(rec) [email protected]                  -- mac algorithm to remove

# additional info
[...]
serge@mini-6 ~ %

Sur la plupart des systèmes linux, le package est disponible (exemple pour Debian: apt install ssh-audit)

Sur mac, il faut utiliser brew , c'est un peu plus compliqué mais comme tu es linuxien, ça devrait aller :wink:
Bloc de code:
brew install ssh-audit
[...]
==> Running `brew cleanup ssh-audit`...