SSH (Secure Shell) est un protocole de communication sécurisée qui permet d’accéder et de gérer des systèmes à distance de manière chiffrée. Voici les principaux points à retenir sur SSH et OpenSSH :
SSH (Secure Shell)
SSH est un protocole qui :
- Permet une communication sécurisée sur des réseaux non sécurisés.
- Chiffre les identités, mots de passe et données transmises pour empêcher leur interception.
- Remplace des protocoles non sécurisés comme Telnet, rlogin et FTP.
- Fonctionne selon une architecture client-serveur.
OpenSSH
OpenSSH est une implémentation open source du protocole SSH qui :
- A été développée à l’origine par le projet OpenBSD en 1999[1][2].
- Est devenue l’implémentation SSH par défaut sur de nombreux systèmes Linux et Unix[2].
- Fournit une suite d’outils pour des connexions sécurisées, des transferts de fichiers et d’autres services réseau[2][3].
Fonctionnalités clés
OpenSSH offre :
- Une authentification sécurisée par clés publiques/privées.
- Des outils comme SCP et SFTP pour les transferts de fichiers chiffrés.
- La création de tunnels SSH pour le transfert de ports et le chiffrement du trafic réseau.
- La prise en charge de plusieurs versions du protocole SSH (SSH-1 et SSH-2).
Composants principaux
OpenSSH comprend :
- Un client SSH (commande
ssh
) pour se connecter à des serveurs distants. - Un serveur SSH (
sshd
) qui écoute les connexions entrantes (par défaut généralement sur le port 22). - Des utilitaires pour la gestion des clés et la configuration.
Sécurité
SSH utilise plusieurs méthodes de chiffrement :
- Chiffrement symétrique pour la session
- Chiffrement asymétrique pour l’échange de clés
- Hachage pour vérifier l’intégrité des messages
En résumé, SSH et OpenSSH fournissent une solution robuste et sécurisée pour l’administration à distance des systèmes, le transfert de fichiers et la communication sur des réseaux non sécurisés.
SSH et notre projet homelab
Dans le cadre de notre projet homelab nous avons besoin de pouvoir nous connecter via SSH à chacun des conteneurs déployés précédemment. Cela permettre de pouvoir ensuite déployer automatiquement des playbooks Ansible pour effectuer la configuration de nos conteneurs (mise à jour, installation des logiciels utiles…)