Qu’est-ce que SSH et comment puis-je l’utiliser ?
Table des matières
SSH signifie Secure Shell protocol, et vous avez probablement rencontré ce problème en naviguant dans le monde de l’hébergement web. Il sécurise toutes les informations lors de leur transit sur un réseau en les chiffrant. Grâce à ce protocole de sécurité, vous pouvez gérer vos fichiers, les transférer ou les modifier et exécuter des commandes directement sur le serveur.
Dans cet article, nous allons nous concentrer sur la signification de SSH, son fonctionnement, son utilisation et ce que sont les clés SSH. Ici, vous apprendrez aussi comment établir une connexion SSH avec votre serveur et les commandes communes à votre disposition.
Qu’est-ce que SSH ?
Après son développement initial en tant qu’outil pour corriger les vulnérabilités permettant des attaques par « sniffing de mot de passe », le protocole a gagné en popularité et a évolué. Par la suite, il s’est imposé comme un standard pour la communication sécurisée entre les appareils.
Définition
SSH (Secure Shell) est un protocole réseau qui permet un accès distant via une connexion chiffrée. Il fournit une authentification robuste et prend en charge la connexion à distance sécurisée, l’exécution de commandes, les transferts de fichiers, le contrôle d’accès, le transfert TCP/IP, etc.
Vous pouvez gérer vos fichiers et dossiers via une connexion SSH, modifier leurs permissions, éditer des fichiers directement sur le serveur, etc.
Fonctionnalités SSH expliquées
Le protocole Secure Shell fournit diverses fonctionnalités de sécurité, et vous trouverez ci-dessous une liste des plus notables:
- Confidentialité de vos données – Secure Shell protège vos données contre toute divulgation en les chiffrant.
- Intégrité des communications – Le protocole Secure Shell garantit que les informations échangées restent inchangées.
- Authentification – Ce protocole nécessite une preuve d’identité de la part de l’expéditeur et du destinataire afin d’établir une connexion.
- Autorisation – SSH vous permet également de configurer le contrôle d’accès aux comptes, en fournissant aux utilisateurs différents privilèges.
- Transfert/tunnelage pour chiffrer les sessions TCP/IP – Les utilisateurs peuvent configurer des tunnels pour transférer le trafic non chiffré sur un canal réseau chiffré.
À quoi sert le protocole SSH ?
Le protocole Secure Shell a une grande variété d’utilisations; le plus souvent, il est utilisé par les administrateurs système. Il est implémenté par défaut sur les serveurs Unix, Linux, Windows et MAC. Ce protocole crée un canal sécurisé entre un ordinateur local et un serveur distant, permettant l’exécution de commandes, l’accès aux ressources, le transfert de fichiers, la mise à jour des performances, etc. Il est également utilisé dans divers protocoles de transfert de fichiers, routeurs, gestion de matériel serveur et l’administration du système d’exploitation.
De plus, le protocole Secure Shell facilite la gestion des identités, le contrôle d’accès et l’automatisation des processus.
Quelles sont les différentes méthodes d’authentification SSH ?
En général, deux méthodes d’authentification SSH sont largement utilisées: l’authentification par mot de passe et l’authentification par clé publique ( PKI ).
Authentification par mot de passe
Dans ce type d’authentification, lorsqu’un client essaie de se connecter à un serveur distant, il identifie l’utilisateur avec un nom d’utilisateur et un mot de passe. Lorsqu’un utilisateur saisit ses identifiants d’accès, le serveur vérifie s’ils sont présents dans sa base de données. Les identifiants sont partagés sur un canal chiffré; s’ils correspondent, le serveur autorise le client à se connecter.
Bien que les mots de passe soient la méthode conventionnelle d’identification des utilisateurs, il existe toujours un risque de compromission. Pour maintenir une bonne hygiène des mots de passe, vous devez définir des mots de passe forts, les modifier régulièrement et les garder privés.
Malheureusement, avec le nombre d’identifiants que nous utilisons de nos jours, cela peut représenter un défi pour de nombreux utilisateurs. Cela crée les conditions idéales pour que les pirates informatiques exploitent vos informations de connexion. Bien que les mots de passe soient chiffrés lors de la transition entre les ordinateurs distants, une attaque par force brute pourrait toujours les déchiffrer. Naturellement, ce fait fait des mots de passe une méthode d’identification moins sûre. La divulgation de vos informations d’identification SSH peut permettre un accès root à un pirate informatique, entraînant de terribles conséquences.
Authentification PKI
L’authentification par clé est la méthode préférée et est recommandée par rapport à l’authentification par mot de passe, qui peut être forcée.
L’authentification PKI utilise des clés cryptographiques pour établir une relation de confiance entre le serveur et le client. L’identification par clé peut nécessiter une phrase secrète (mot de passe) ou peut fonctionner sans une phrase secrète sur la clé.
Pour utiliser ce type d’authentification, vous devez générer une paire de clés SSH. La paire de clés se compose d’une clé publique et d’une clé privée. La clé publique est conservée sur le serveur, tandis que la clé privée est conservée sur votre ordinateur.
Lorsque vous vous connectez via Secure Shell, une relation de confiance entre votre ordinateur et le serveur est établie à l’aide de la paire de clés. Si l’une des clés est manquante ou s’il y a une différence entre les clés, la connexion ne peut pas être établie.
La méthode d’authentification prise en charge par SiteGround est l’authentification PKI, car elle offre une meilleure sécurité pour votre accès SSH.
Architecture et composants SSH
Secure Shell a une architecture en couches, encapsulant 3 couches principales – transport , authentification et connexion . Dans cette section, nous passerons en revue chacun d’eux et leurs composants, alors continuez à lire.
Couche transport
Habituellement, la couche de transport utilise Transmission Control Protocol le port SSH par défaut 22 de la suite de protocoles Internet ( TCP/IP ). de l’échange et de l’authentification de clé initiaux, vérifie son intégrité et inaugure le chiffrement/déchiffrement. Il compresse également les données transmises pour accélérer le processus. Ainsi, il joue un rôle majeur dans l’échange d’informations sûr et sécurisé entre les hôtes distants.
Chez SiteGround, le numéro de port par défaut pour SSH est 18765 , déviant du port par défaut 22 pour une sécurité renforcée.
Au cours de la phase d’échange de clés, le serveur s’identifie auprès du client en utilisant une clé d’hôte . Si vous vous connectez à ce serveur pour la première fois, le client vous demandera si vous acceptez cette clé d’hôte et si vous l’acceptez – le client en enregistre une copie localement.
![Accept the new host](https://d3kky1fz3fem6z.cloudfront.net/wp-content/uploads/sites/2/2019/05/accept-new-host-708x62.png)
Si vous confirmez que vous voulez continuer, le client stocke la copie dans un fichier Clés d’hôte connues pour référence future.
![New host name stored in known hosts file](https://d3kky1fz3fem6z.cloudfront.net/wp-content/uploads/sites/2/2019/05/new-host-stored-in-known-hosts-708x37.png)
De cette façon, lors de connexions consécutives au même serveur, le client aurait seulement besoin de vérifier la clé de l’hôte par rapport à l’enregistrement qu’elle détient.
Couche d’authentification
Lorsque la couche transport a configuré le chiffrement, le client est invité à s’authentifier en utilisant l’une des méthodes prises en charge. La couche d’authentification utilisateur fournit une suite d’algorithmes d’authentification et s’occupe de l’authentification du client.
Comme mentionné précédemment, SiteGround n’autorise que l’authentification PKI et prend en charge les algorithmes de chiffrement pour les paires de clés publiques et privées.
- DSA
- RSA
- ECDSA
6aee496 Ed25519
L’algorithme cryptographique par défaut pour générer une paire de clés sur SiteGround est RSA, un chiffrement à 2048 bits, comparable à un mot de passe de 617 chiffres.
Clés SSH
Une paire de clés SSH est constituée des clés privée et publique utilisées dans une méthode d’authentification par clé SSH publique. Dans cette méthode d’authentification, un fichier (appelé clé privée) est généralement stocké côté client, et l’autre fichier (appelé clé publique) est stocké côté serveur. Chaque paire de clés SSH est unique, ce qui garantit que seuls les utilisateurs disposant de la bonne paire de clés sont autorisés à y accéder.
- Les clés publiques permettent aux utilisateurs d’accéder à un serveur distant, et les serveurs s’en servent pour chiffrer les données. Pratiquement n’importe qui détenant la clé publique SSH de la paire peut chiffrer les données, mais seul l’utilisateur avec la clé privée peut les déchiffrer.
Lorsque le client envoie la clé publique au serveur SSH et que le serveur confirme son authenticité, le serveur marque la clé comme autorisée. Par conséquent, les clés publiques sont aussi appelées clés autorisées. Elles sont stockées dans le fichier enabled_keys du répertoire personnel du compte utilisateur.
- Les clés privées sont aussi appelées clés d’identité car elles sont la preuve de l’identité de l’utilisateur. Un utilisateur ne peut être correctement authentifié par le serveur que s’il possède la clé privée correspondant à la clé publique. Les utilisateurs doivent garder leurs clés privées confidentielles et s’abstenir de les partager avec d’autres.
- Une clé de session est générée collectivement par le client SSH et le serveur. Cette clé symétrique est utilisée pour chiffrer la totalité de la session SSH. Les deux entités conviennent d’une clé de session à utiliser en fonction des données des clés publique et privée pour générer un « secret partagé ». Il est partagé de manière sécurisée par les deux parties et est utilisé pour chiffrer et déchiffrer les données échangées (c’est-à-dire chiffrement symétrique ).
De cette façon, un espion ne peut pas intercepter les données en transit; lorsque la session est fermée, la clé de session est détruite.
Couche connexion
Lorsque le processus d’authentification est terminé avec succès, une connexion multiplexée au serveur est initiée dans plusieurs canaux. Chacun de ces canaux logiques transfère des données dans les deux sens, ce qui permet à de nombreuses sessions de naître à partir d’une seule connexion SSH.
L’un de ces canaux est le Secure File Transfer Protocol (SFTP), qui vous permet d’accéder à des fichiers et de les transférer en toute sécurité via une connexion SSH.
Comment SSH fonctionne-t-il ?
![How does SSH work?](https://d3kky1fz3fem6z.cloudfront.net/wp-content/uploads/sites/2/2019/05/how-ssh-work-708x426.png)
Comme vous l’avez probablement compris, vous aurez besoin d’un client SSH pour établir une connexion SSH avec votre serveur. Secure Shell fonctionne sur un modèle client-serveur, dans lequel le client SSH est un logiciel qui permet aux utilisateurs de se connecter en toute sécurité à un hôte distant.
Le client SSH initie une demande de connexion SSH au serveur, et le serveur SSH répond avec un message aléatoire. Le client chiffre ce message en utilisant la clé privée et le renvoie au serveur. Le serveur déchiffre ensuite ce message en utilisant la clé publique correspondant à la clé privée du client. De cette façon, le serveur vérifie que les clés publique et privée font partie d’une paire.
Une fois cette vérification terminée, les deux entités conviennent d’un secret partagé (clé de session) à utiliser pour la session.
Lorsque le secret partagé est établi, le client utilise la clé privée et la clé de session pour calculer une valeur hachée, qui est envoyée au serveur. Pendant ce temps, le serveur calcule également une valeur hachée en utilisant la clé de session et la clé publique. Si les deux valeurs correspondent, cela prouve que le client est le propriétaire de la clé privée et que le serveur accorde l’accès SSH au client.
Comment générer et importer des clés SSH
Jusqu’ici, vous avez compris que la première étape pour établir une connexion SSH est de générer une paire de clés SSH.
Vous pouvez le faire soit localement, soit depuis votre compte d’hébergement web si votre forfait inclut l’accès SSH. Tous les forfaits SiteGround autorisent l’accès SSH afin que nos clients puissent gérer efficacement leurs sites web via SSH.
Cette section explique comment générer une paire de clés à partir de votre Site Tools , comment le faire localement et comment importer votre clé SSH, alors lisez la suite.
Génère une paire de clés SSH à partir de Site Tools
Si vous êtes un client SiteGround, pour générer de nouvelles clés RSA, vous devez vous connecter au Site Tools pour le site auquel vous souhaitez autoriser l’accès. Une fois là, accédez au fichier Dev> SSH Manager dans la barre latérale, saisissez un nom pour votre clé et définissez un mot de passe, puis cliquez sur Créer .
![Generate SSH key pair from Site Tools](https://d3kky1fz3fem6z.cloudfront.net/wp-content/uploads/sites/2/2019/05/generate-ssh-keys-site-tools-708x275.png)
Une fois la paire créée, vous verrez un message « La clé SSH est générée ». Vous pouvez gérer toutes vos clés depuis la section Gérer les clés SSH . Cliquez sur le menu Actions à côté du nom de clé que vous avez choisi pour obtenir les clés privée et publique de la paire.
![Manage SSH keys in Site Tools](https://d3kky1fz3fem6z.cloudfront.net/wp-content/uploads/sites/2/2019/05/manage-ssh-keys-site-tools-708x292.png)
À partir du même menu, vous pouvez également spécifier quelles adresses IP (ou plages d’adresses IP) peuvent avoir accès avec la paire de clés, changer son nom et obtenir les informations d’identification SSH.
Comme les clés SSH sont générées directement par le serveur, il vous suffit de copier la clé privée Clé privée et de l’enregistrer dans un fichier texte sur votre ordinateur.
Générer une paire de clés SSH localement
Vous pouvez également générer une paire de clés SSH sur votre ordinateur local; les étapes varient en fonction de votre système d’exploitation.
Vous pouvez utiliser un client SSH pour Windows afin de générer des clés SSH appelé PuTTY). faire ça.
Mac OS possède un client SSH intégré appelé Terminal, , vous pouvez facilement le trouver en utilisant la fonctionnalité de recherche Spotlight en appuyant sur les touches Espace + Commande . Chargez l’application Terminal, saisissez « ssh-keygen -t rsa ” dans la ligne de commande et appuyez sur Entrée . Cette commande va générer une paire de clés avec l’ID SSH « rsa ». Ce sera le nom de votre paire de clés. Pour plus d’informations, consultez notre article Comment créer des clés SSH sous Mac OS.
Les utilisateurs de Système d’exploitation Linux peuvent également utiliser le terminal intégré pour générer des clés avec la même commande « ssh-keygen ».
Après avoir généré les clés, trouvez-les à l’emplacement correspondant sur votre ordinateur et copiez la clé publique .
Comment importer des clés SSH sur SiteGround
Pour importer une nouvelle clé SSH, allez à Site Tools> Développeurs> Gestionnaire de clés SSH> Ajouter un nouveau> Importer . Saisissez le nom de la clé et collez la clé publique dans le champ correspondant. Vous pouvez également l’importer via la clé d’importation depuis le lien Fichier .
![Import SSH key in Site Tools](https://d3kky1fz3fem6z.cloudfront.net/wp-content/uploads/sites/2/2019/05/import-ssh-key-site-tools-708x296.png)
Lorsque la clé SSH publique y sera importée, vous pourrez gérer l’accès à celle-ci par adresse IP. Vous pouvez aussi voir la clé SSH depuis le menu Actions, bien que vous ne puissiez voir que la clé publique.
Comment établir un accès SSH à votre compte d’hébergement
Maintenant que vos clés SSH sont prêtes, vous pouvez suivre les étapes décrites dans les articles ci-dessous pour voir comment vous connecter en fonction de votre système d’exploitation.
- Comment me connecter à mon compte partagé SiteGround via SSH en utilisant PuTTY ?
- Me connecter à mon compte partagé SiteGround via SSH sous Mac OS ?
- Comment me connecter à mon compte partagé SiteGround via SSH sous Linux ?
Commandes SSH courantes
Pour gérer vos fichiers via une connexion SSH, vous aurez besoin d’acquérir au moins un ensemble de commandes de base à utiliser. Jetez un œil à nos tutoriels SSH pour apprendre à répertorier, créer un nouveau fichier/dossier, modifier ou supprimer des fichiers et des dossiers, créer et extraire des archives, ou encore gérer les permissions et la propriété.
Pour résumer, dans cet article, nous avons expliqué ce qu’est le protocole SSH, son architecture, ce que sont les clés SSH et d’autres composants. Nous avons également abordé le fonctionnement de SSH, la génération ou l’importation de clés SSH et la connexion à votre compte via SSH.