Article sur SSH
SSH c’est quoi
SSH (Secure Shell) : Protocole de communication sécurisé qui nécessite l’échange de clés de cryptage en début de connexion pour garantir une communication sécurisée entre un client et un serveur à distance. Il permet d’authentifier l’utilisateur en toute sécurité, de chiffrer les données transmises et d’exécuter des commandes à distance. SSH est très utilisé pour accéder à distance à des systèmes informatiques, qui fourni une connexion fiable et sécurisée pour des tâches comme l’administration du système, le transfert de fichiers et le tunnel de port.
Protocoles SSH
Il existe 2 principales protocole SSH:
- SSH1
- SSH2
Difference entre SSH1 et SSH2
- SSH1 : C’est la première version du protocole SSH qui a été développée. Elle utilise principalement l’algorithme de chiffrement asymétrique RSA pour l’authentification et le chiffrement des données. Cependant, SSH1 a été largement remplacé par SSH2 en raison de problèmes de sécurité et de vulnérabilités connues. Il est recommandé d’éviter d’utiliser SSH1 et de privilégier SSH2.
- SSH2 : C’est la version actuelle et largement utilisée du protocole SSH. Elle offre des améliorations significatives en termes de sécurité, de performances et de fonctionnalités.
Fonctions principales du SSH
- Authentification sécurisée
- Chiffrement des données
- Transfert de fichiers sécurisé
- Exécution de commandes à distance
Utilisation du Secure Shell
Le Secure Shell (SSH) est couramment utilisé pour accéder de manière sécurisée à des systèmes distants et exécuter des commandes à distance. L’utilisation de SSH peut se faire avec un logiciel PuTTY ou sur le terminal macOs ou linux
PuTTY
PuTTY est un client SSH gratuit et open-source largement utilisé pour se connecter à des serveurs distants en utilisant le protocole SSH. Il est principalement utilisé sur les systèmes Windows, mais il existe également des versions disponibles pour d’autres plateformes.
L’utilisation de PuTTY s’effectue après avoir téléchargé celui-ci ici, après l’installation, il faudra sélectionner le protocole SSH. Par défaut, celui-ci est défini sur le port 22. Pour plus d’information vous pouvez consulter ce site en cliquant ici
Utilisation sur le terminal (Linux et MacOs)
Après avoir ouvert le terminal, il existe plusieur commandes à effectuer pour se connecter en mode SSH :
- Connection SSH:
ssh username@hostname
En fonction de la configuration du serveur distant, vous devrez vous authentifier. Vous pouvez utiliser un mot de passe ou une clé SSH. Si vous utilisez une clé SSH, votre clé publique devra se trouver dans le fichier
~/.ssh/authorized_keys
Comment se connecter avec la clé SSH
Pour configurer l’authentification par clé SSH, vous devez prendre quelques étapes spécifiques. En premier lieu, vous avez besoin de générer une paire de clés publiques ou privées sur votre machine locale. Pour ce faire, il est possible d’utiliser l’utilitaire ssh-keygen en exécutant la commande suivante sur votre terminal:
- Creation d’une nouvelle clé sur le terminal:
ssh-keygen -t rsa
Ensuite, suivez les étapes. Vous devrez préciser un emplacement pour sauvegarder la clé privée. Par défaut, elle est généralement sauvegardée dans le répertoire ~/.ssh/ avec le nom “id_rsa”. Cliquez sur “Entrée” pour accepter l’emplacement par défaut.
Vous devrez aussi définir un mot de passe(passphrase) afin de protéger la clé privée. Il est conseillé de choisir un mot de passe solide pour une sécurité optimale.
Clé privée
C’est un fichier crucial pour l’authentification par clé SSH. Elle est générée sur votre machine locale et doit être gardée en sécurité. Voici l’emplacement de la clé privée:
cat ~/.ssh/id_rsa
Clé publique
Elle est dérivée de la clé privée et doit être partagée avec les serveurs à distance auxquels vous voulez vous connecter. Voici comment obtenir la clé publique.
Une fois que vous avez généré la clé privée avec la commande précédente avec “ssh-keygen”, vous pouvez afficher la clé publique en exécutant la commande suivante avec “.pub” qui signifie “publique”
cat ~/.ssh/id_rsa.pub
La clé publique sera affichée dans votre terminal. Vous pouvez la copier intégralement.
Après avoir généré votre clé privée et obtenu la clé publique, vous devez fournir la clé publique au serveur distant avec lequel vous souhaitez vous connecter. Généralement, le serveur SSH conserve la liste des clés publiques autorisées dans un fichier appelé “authorized_keys”.
Voici comment ajouter votre clé publique au fichier “authorized_keys”
- Connectez-vous au serveur distant via SSH
ssh username@IP_ADDRESS
Ensuite entrez votre mot de passe.</br>
- Une fois connecté, exécutez les commandes suivantes pour ajouter votre clé publique à l’authentification par clé
mkdir -p ~/.ssh echo "VOTRE_CLÉ_PUBLIQUE" >> ~/.ssh/authorized_keys
En suivant ces étapes, vous avez configuré SSH Key Authentication en utilisant les fichiers appropriés à l’emplacement correct.Ceci renforcera la sécurité de vos connexions SSH via une méthode d’authentification basée sur des clés asymétriques.
Les avantages pour l’utilisations de SSH
-
Protection contre des attaques de force brutale : SSH intègre des mécanismes pour protéger contre les attaques de force brutale. c’est-à-dire que si un attaquant essaie de deviner le mot de passe, le serveur SSH limite le nombre de tentatives de connexion et bloque automatiquement l’adresse IP source.
-
Tunneling sécurisé. : SSH permet de créer des tunnels sécurisés, ce qui signifie que le trafic réseau entre le client et le serveur peut être acheminé par un canal crypté. Ceci est particulièrement utile lorsque vous avez besoin d’accéder à des services à distance (comme des bases de données) par l’intermédiaire de réseaux non sécurisés.
-
Administration à distance : SSH permet de gérer facilement les serveurs à distance. Vous pouvez vous connecter à un serveur à distance par SSH et exécuter des commandes, éditer des fichiers de configuration, gérer les utilisateurs, etc. Ceci permet aux administrateurs système de gérer leurs systèmes à distance de façon sécurisée.
-
Portabilité: SSH est un protocole standard et est largement soutenu sur diverses plates-formes, y compris Linux, macOS et Windows. Ceci signifie que vous pouvez utiliser SSH pour vous connecter à des serveurs distants à partir de différentes machines, peu importe le système d’exploitation utilisé.
Bibliographie
- [1] Definition ssh Consulté le 24/05/2023
- [2] Fonctions principales Consulté le 24/05/2023
- [3] Difference entre SSH1 et SSH2 Consulté le 24/05/2023
- [4] Se connecter avec PuTTy Consulté le 25/05/2023
- [5] Comment se connecter avec la clé SSH Consulté le 25/05/2023
- [6] Les avantages pour l’utilisations de SSH Consulté le 26/05/2023
- [7]Se connecter sur un serveur distant Consulté le 02/06/2023