Présentation | Je pensais que SSH existait en deux versions 1 et 2 (SSH1 et SSH2). Quelle est la différence entre ces deux-là ? Et comment puis-je vérifier la version du protocole SSH sous Linux ? |
Secure Shell (SSH) permet une connexion à distance ou l'exécution de commandes à distance via un canal de communication sécurisé crypté. SSH est conçu pour remplacer les protocoles de texte en clair non sécurisés tels que telnet, rsh et rlogin. SSH fournit un certain nombre de fonctionnalités requises telles que l'authentification, le cryptage, l'intégrité des données, l'autorisation et le transfert/tunnelage.
SSH1 contre SSH2Il existe quelques différences de version mineures dans la spécification du protocole SSH, mais il existe deux versions principales principales : SSH1 (version 1.XX) et SSH2 (version 2.00).
En fait, SSH1 et SSH2 sont deux protocoles complètement différents et incompatibles. SSH2 améliore considérablement de nombreux aspects de SSH1. Tout d'abord, SSH est une conception macro. Plusieurs fonctions différentes (telles que l'authentification, la transmission, la connexion) sont regroupées dans un seul protocole. SSH2 apporte des fonctionnalités de sécurité plus puissantes que SSH1, telles que la vérification d'intégrité basée sur MAC et les mises à jour flexibles des clés de session. , algorithmes de chiffrement entièrement négociés, certificats de clé publique, etc.
SSH2 est standardisé par l'IETF et sa mise en œuvre est largement déployée et acceptée dans l'industrie. En raison de la popularité et des avantages de chiffrement de SSH2 par rapport à SSH1, de nombreux produits ont abandonné la prise en charge de SSH1. Au moment de la rédaction de cet article, OpenSSH prend toujours en charge SSH1 et SSH2, mais dans toutes les distributions Linux modernes, les serveurs OpenSSH désactivent SSH1 par défaut.
Méthode 1Si vous souhaitez vérifier la version du protocole SSH prise en charge par le serveur OpenSSH local, vous pouvez vous référer au fichier /etc/ssh/sshd_config. Ouvrez /etc/ssh/sshd_config avec un éditeur de texte et regardez le champ "Protocole".
S'il s'affiche comme suit, cela signifie que le serveur ne prend en charge que SSH2.
Protocol 2
S'il s'affiche comme suit, cela signifie que le serveur prend en charge à la fois SSH1 et SSH2.
Protocol 1
Si vous ne pouvez pas accéder à /etc/ssh/sshd_config car le service OpenSSH s'exécute sur un serveur distant. Vous pouvez utiliser un client SSH appelé ssh pour vérifier les protocoles pris en charge. Plus précisément, cela oblige ssh à utiliser un protocole SSH spécifique, puis nous vérifions la réponse du serveur SSH.
La commande suivante force ssh à utiliser SSH1 :
ssh -1 user@remote_server
La commande suivante force ssh à utiliser SSH2 :
ssh -2 user@remote_server
Si le serveur SSH distant ne prend en charge que SSH2, alors la première option avec "-1" apparaîtra comme le message d'erreur suivant :
Protocol major versions differ: 1 vs. 2
Si le serveur SSH prend en charge à la fois SSH1 et SSH2, alors les deux commandes sont valides.
Méthode 3Une autre façon de vérifier la version consiste à exécuter un outil d'analyse SSH appelé scanssh. Cet outil de ligne de commande est utile lorsque vous souhaitez vérifier un groupe d'adresses IP ou un réseau local entier pour mettre à niveau un serveur SSH compatible SSH1.
Ce qui suit est la syntaxe de base de l'analyse de la version SSH.
sudo scanssh -s ssh -n [ports] [IP addresses or CIDR prefix]
L'option "-n" peut spécifier le port SSH à analyser. Vous pouvez utiliser la séparation Duhao pour analyser plusieurs ports. Sans cette option, scanssh analysera le port 22 par défaut.
Utilisez la commande ci-dessous pour découvrir le serveur SSH dans le réseau local 192.168.1.0/24 et vérifier la version v du protocole SSH :
sudo scan -s ssh 192.168.1.0/24
Si scanssh signale "SSH-1.XX-XXXX" pour une adresse IP spécifique, cela implique que la version minimale prise en charge par le serveur SSH concerné est SSH1. Si le serveur distant ne prend en charge que SSH2, scanssh affichera "SSH-2.0-. XXXX".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!