Maison >Problème commun >Qu'est-ce que SSH ? Pour une explication détaillée du principe, il suffit de lire cet article !
SSH (Secure Shell) est un protocole de sécurité réseau qui implémente des services d'accès et de transfert de fichiers sécurisés via des mécanismes de cryptage et d'authentification. Les méthodes traditionnelles de connexion à distance ou de transfert de fichiers, telles que Telnet et FTP, utilisent du texte brut pour transmettre des données, ce qui présente de nombreux risques de sécurité. À mesure que les gens accordent davantage d’attention à la sécurité des réseaux, ces méthodes sont progressivement devenues moins acceptées. Le protocole SSH fournit une connexion sécurisée et d'autres services réseau sécurisés dans un environnement réseau non sécurisé en cryptant et en vérifiant les données réseau. En tant qu'alternative sécurisée à Telnet et à d'autres protocoles shell distants non sécurisés, le protocole SSH a été largement utilisé dans le monde entier et la plupart des appareils prennent en charge la fonction SSH.
Quel est le numéro de port SSH ?
Comment fonctionne SSH ?
Utilisation des clés PuTTY et OpenSSHSSH
Lorsque SSH est appliqué à STelnet, SFTP et SCP, le port SSH par défaut utilisé est 22. Lorsque SSH est appliqué à NETCONF, vous pouvez spécifier le port SSH sur 22 ou 830. Le port SSH prend en charge la modification. Après la modification, toutes les connexions actuelles seront déconnectées et le serveur SSH commencera à écouter le nouveau port.
SSH se compose d'un serveur et d'un client Durant tout le processus de communication, afin d'établir un canal SSH sécurisé, il passera par les étapes suivantes :
Le serveur SSH écoute les connexions clients. sur la demande de port désignée, une fois que le client a lancé une demande de connexion au serveur, les deux parties établissent une connexion TCP.
Le protocole SSH existe actuellement en versions SSH1.X (version antérieure à SSH2.0) et SSH2.0. Par rapport au protocole SSH1.X, la structure du protocole SSH2.0 a été étendue et peut prendre en charge davantage de méthodes d'authentification et de méthodes d'échange de clés, tout en améliorant les capacités de service. Le serveur et le client SSH déterminent le numéro de version SSH final utilisé par négociation.
SSH prend en charge plusieurs algorithmes de cryptage sur la base des algorithmes pris en charge par chaque partie, les deux parties négocient l'algorithme d'échange de clés finalement utilisé pour générer les clés de session, l'algorithme de cryptage utilisé pour crypter les informations de données et l'algorithme de cryptage utilisé. pour effectuer des signatures numériques et des algorithmes à clé publique authentifiés et des algorithmes HMAC pour la protection de l'intégrité des données.
Génial ! N projets open source indispensables pour entreprendre des travaux privés !
Le serveur et le client utilisent l'algorithme d'échange de clés pour générer dynamiquement des clés de session partagées et des identifiants de session afin d'établir des canaux cryptés. La clé de session est principalement utilisée pour le cryptage des transmissions de données ultérieures, et l'ID de session est utilisé pour identifier la connexion SSH pendant le processus d'authentification.
Le client SSH initie une demande d'authentification auprès du serveur, et le serveur authentifie le client. SSH prend en charge les méthodes d'authentification suivantes :
Une fois l'authentification réussie, le client SSH envoie une demande de session au serveur, demandant au serveur de fournir un certain type de service, c'est-à-dire demandant d'établir une session correspondante avec le serveur . De plus, lors de la recherche du compte public Linux, c'est ainsi que vous devez apprendre à répondre « Linux » en arrière-plan pour obtenir un paquet cadeau surprise.
Une fois la session établie, le serveur SSH et le client échangent des informations sur la session.
PuTTY est un outil de connexion SSH gratuit classique sous Windows. Il est généralement utilisé pour se connecter à distance aux appareils utilisant le protocole SSH. La dernière version peut être téléchargée sur le site officiel de PuTTY.
OpenSSH est une implémentation open source du protocole SSH et prend en charge l'exécution sur les systèmes d'exploitation Unix. La dernière version peut être téléchargée sur le site officiel d'OpenSSH. Actuellement, Windows 10 inclut déjà le logiciel client et serveur OpenSSH, qui peut être recherché et installé dans « Paramètres — Applications — Applications et fonctionnalités — Fonctionnalités facultatives ».
Le moyen de base d'améliorer la sécurité est le cryptage. L'algorithme de cryptage convertit le texte brut en texte chiffré via une clé pour une transmission sécurisée. SSH utilise une combinaison d'algorithmes de cryptage symétrique et asymétrique pendant son processus de travail pour garantir la sécurité de la transmission des informations via des clés SSH pré-générées. Les processus de cryptage et de déchiffrement des deux algorithmes de cryptage sont présentés dans la figure ci-dessous.
Algorithme de cryptage symétrique
Algorithme de cryptage asymétrique
L'algorithme de cryptage symétrique utilise la même clé pour crypter et déchiffrer les données. La clé de session générée lors de l'établissement d'une connexion SSH est une clé symétrique. La clé symétrique est générée par le client et le serveur à l'aide d'algorithmes d'échange de clés basés sur des informations partielles partagées et leurs propres données privées. Étant donné que l’algorithme de chiffrement symétrique chiffre et déchiffre très rapidement, il convient aux scénarios dans lesquels de grandes quantités de données sont transmises.
L'envoi et la réception chiffrés asymétriquement nécessitent l'utilisation d'une paire de clés SSH associées, une clé publique et une clé privée. La clé privée est conservée par la partie qui l'a générée et la clé publique peut être envoyée à toute autre personne demandant une communication. L'expéditeur utilise la clé publique reçue pour chiffrer le contenu de sa communication, et seul le destinataire peut utiliser la clé privée pour déchiffrer et obtenir le contenu de la communication. La clé privée du cryptage asymétrique n'a pas besoin d'être exposée sur le réseau et la sécurité est considérablement accrue, mais la vitesse de cryptage et de déchiffrement est beaucoup plus lente que celle de la clé symétrique.
Le cryptage asymétrique est utilisé à deux étapes du processus de connexion SSH. La première est que pendant la phase d'échange de clés, le serveur et le client génèrent leurs propres clés publiques et privées temporaires, qui sont utilisées pour calculer la même clé de session utilisée pour le contenu de communication crypté ultérieur. L'autre consiste à utiliser la fonctionnalité selon laquelle seule la clé privée correspondante peut déchiffrer de manière unique le contenu crypté par la clé publique pendant la phase d'authentification de l'utilisateur afin de vérifier l'identité du client via la clé publique et la paire de clés privées du client.
Les deux méthodes les plus élémentaires d'authentification des utilisateurs SSH sont l'authentification par mot de passe et l'authentification par clé. L'authentification par mot de passe consiste à envoyer votre nom d'utilisateur et votre mot de passe au serveur pour authentification. Cette méthode est relativement simple et vous devez saisir votre nom d'utilisateur et votre mot de passe à chaque fois que vous vous connectez. L'authentification par clé utilise une paire de clés publiques et privées pour la vérification de l'identité afin d'obtenir une connexion sécurisée sans mot de passe. Il s'agit d'une méthode de connexion largement utilisée et recommandée. Le principe de base de l'authentification par clé est que le serveur utilise la clé publique du client pour crypter le contenu aléatoire, et que le client utilise sa propre clé privée pour le déchiffrer et l'envoyer au serveur afin de vérifier son identité. Le processus spécifique est illustré dans la figure ci-dessous. .
Processus de connexion par authentification par clé SSH
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!