web-dev-qa-db-fra.com

Comment puis-je répertorier les MAC, les chiffrements et les KexAlogrithms pris en charge par mon serveur ssh?

Comment puis-je déterminer les MAC, les chiffres, la longueur de clé et les KexAlogrithms pris en charge par mes serveurs ssh?

J'ai besoin de créer une liste pour un audit de sécurité externe. Je cherche quelque chose de similaire à openssl s_client -connect example.com:443 -showcerts. D'après mes recherches, le ssh utilise les chiffres par défaut répertoriés dans man sshd_config. Cependant j'ai besoin d'une solution que je peux utiliser dans un script et man sshd_config ne répertorie pas les informations sur la longueur de clé. Je dois me corriger ici: vous pouvez spécifier ServerKeyBits dans sshd_config.

Je suppose que ssh -vv localhost &> ssh_connection_specs.out renvoie les informations dont j'ai besoin, mais je ne sais pas si les chiffres répertoriés sont les chiffres pris en charge par le client ou par le serveur. De plus, je ne sais pas comment exécuter ce non interactif dans un script.

Existe-t-il un moyen pratique d'obtenir des informations de connexion sur SSH?

19
Henrik Pingel

Vous manquez quelques points dans votre question:

  • Quelle est votre version openssh? Cela peut différer un peu selon les versions.
  • ServerKeyBits est une option pour la version 1 du protocole, que vous avez heureusement désactivée!

Pris en charge Les chiffrements, MAC et KexAlgorithms sont toujours disponibles en manuel et cela n'a rien de commun avec les longueurs de clé.

Enabled Chiphers, MACs et KexAlgorithms sont ceux qui sont offerts en utilisant la connexion comme vous le faites remarquer. Mais ils peuvent également être obtenus par d'autres moyens, par exemple en utilisant sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"

Pour obtenir la longueur de clé de vos clés de serveur, vous pouvez utiliser ssh-keygen: ssh-keygen -lf /etc/ssh/ssh_Host_rsa_key.pub

mais vous voudrez probablement aussi les tailles de modules qui sont proposées et utilisées lors de l'échange de clés, mais cela dépend vraiment de la méthode d'échange de clés, mais elle devrait également être lisible à partir de la sortie de débogage ssh -vvv Host.

18
Jakuje

Comment puis-je déterminer les MAC, les chiffres, la longueur de clé et les KexAlogrithms pris en charge par mes serveurs ssh?

Il ressemble à la réponse sur https://superuser.com/a/1219759/173408 est également une réponse à votre question. Il tient sur une seule ligne:

nmap --script ssh2-enum-algos -sV -p 22 1.2.3.4

Voici la sortie sur une machine Debian 9.4 ordinaire avec la version SSH actuelle:

 À partir de Nmap 7.01 (https://nmap.org) à 2018-05-22 13:40 CEST 
 Rapport d'analyse Nmap pour 1.2.3.4 
 L'hôte est actif (latence 0,00024s). 
 VERSION DU SERVICE DE L'ÉTAT DU PORT 
 22/tcp open ssh OpenSSH 7.4p1 Debian 10 + deb9u3 (protocole 2.0) 
 | Ssh2- enum-algos: 
 | kex_algorithms: (10) 
 | curve25519-sha256 
 | [email protected] 
 | ecdh-sha2-nistp256 
 | ecdh-sha2-nistp384 
 | ecdh-sha2-nistp521 
 | diffie-hellman-group-exchange-sha256 
 | diffie-hellman-group16-sha512 
 | diffie-hellman-group18-sha512 
 | diffie-hellman-group14-sha256 
 | diffie-hellman-group14-sha1 
 | server_Host_key_algorithms: (5) 
 | ssh-rsa 
 | rsa-sha2-512 
 | rsa-sha2-256 
 | ecdsa-sha2-nistp256 
 | ssh-ed25519 
 | algorithmes de cryptage: (6) 
 | [email protected] 
 | aes128-ctr 
 | aes192-ctr 
 | aes256-ctr 
 | [email protected] 
 | [email protected] 
 | mac_algorithms: (10) 
 | [email protected] 
 | [email protected] 
 | [email protected] 
 | [email protected] 
 | [email protected] 
 | [email protected] 
 | [email protected] 
 | hmac-sha2-256 
 | hmac-sha2-512 
 | hmac-sha1 
 | algorithmes_de compression: (2) 
 | aucun 
 | _ [email protected] 
 Service Info: OS: Linux; CPE: cpe:/o: linux: linux_kernel 
 
 Détection de service effectuée. Veuillez signaler tout résultat incorrect à https://nmap.org/submit/. 
 Nmap fait: 1 adresse IP (1 hôte en place) numérisée en 0,52 seconde 
11