Chapitre 29. Utiliser des communications sécurisées entre deux systèmes avec OpenSSH
SSH (Secure Shell) est un protocole qui assure des communications sécurisées entre deux systèmes à l'aide d'une architecture client-serveur et permet aux utilisateurs de se connecter à distance aux systèmes hôtes des serveurs. Contrairement à d'autres protocoles de communication à distance, tels que FTP ou Telnet, SSH crypte la session de connexion, ce qui empêche les intrus de collecter des mots de passe non cryptés à partir de la connexion.
Red Hat Enterprise Linux inclut les paquetages de base OpenSSH
: le paquetage général openssh
, le paquetage openssh-server
et le paquetage openssh-clients
. Notez que les paquets OpenSSH
nécessitent le paquetage OpenSSL
openssl-libs
, qui installe plusieurs bibliothèques cryptographiques importantes permettant à OpenSSH
de fournir des communications cryptées.
29.1. SSH et OpenSSH
SSH (Secure Shell) est un programme permettant de se connecter à une machine distante et d'y exécuter des commandes. Le protocole SSH fournit des communications cryptées et sécurisées entre deux hôtes non fiables sur un réseau non sécurisé. Vous pouvez également transférer des connexions X11 et des ports TCP/IP arbitraires sur le canal sécurisé.
Le protocole SSH atténue les menaces de sécurité, telles que l'interception des communications entre deux systèmes et l'usurpation d'identité d'un hôte particulier, lorsque vous l'utilisez pour l'ouverture d'une session shell à distance ou la copie de fichiers. En effet, le client et le serveur SSH utilisent des signatures numériques pour vérifier leur identité. En outre, toutes les communications entre les systèmes client et serveur sont cryptées.
Une clé d'hôte authentifie les hôtes dans le protocole SSH. Les clés d'hôte sont des clés cryptographiques générées automatiquement lors de la première installation d'OpenSSH ou lors du premier démarrage de l'hôte.
OpenSSH est une implémentation du protocole SSH supporté par Linux, UNIX et d'autres systèmes d'exploitation similaires. Il comprend les fichiers de base nécessaires au client et au serveur OpenSSH. La suite OpenSSH se compose des outils suivants dans l'espace utilisateur :
-
ssh
est un programme de connexion à distance (client SSH). -
sshd
est un démon SSH OpenSSH. -
scp
est un programme sécurisé de copie de fichiers à distance. -
sftp
est un programme de transfert de fichiers sécurisé. -
ssh-agent
est un agent d'authentification pour la mise en cache des clés privées. -
ssh-add
ajoute des identités de clés privées àssh-agent
. -
ssh-keygen
génère, gère et convertit les clés d'authentification pourssh
. -
ssh-copy-id
est un script qui ajoute les clés publiques locales au fichierauthorized_keys
d'un serveur SSH distant. -
ssh-keyscan
rassemble les clés publiques d'hôte SSH.
Dans RHEL 9, le protocole de copie sécurisée (SCP) est remplacé par le protocole de transfert de fichiers SSH (SFTP) par défaut. Cela s'explique par le fait que SCP a déjà causé des problèmes de sécurité, par exemple CVE-2020-15778.
Si SFTP n'est pas disponible ou incompatible dans votre scénario, vous pouvez utiliser l'option -O
pour forcer l'utilisation du protocole SCP/RCP d'origine.
Pour plus d'informations, consultez l'article sur la dépréciation du protocole SCP d'OpenSSH dans Red Hat Enterprise Linux 9 .
Il existe actuellement deux versions de SSH : la version 1 et la version 2, plus récente. La suite OpenSSH de RHEL ne prend en charge que la version 2 de SSH. Elle dispose d'un algorithme d'échange de clés amélioré qui n'est pas vulnérable aux exploits connus dans la version 1.
OpenSSH, l'un des principaux sous-systèmes cryptographiques de RHEL, utilise des politiques cryptographiques à l'échelle du système. Cela garantit que les suites de chiffrement et les algorithmes cryptographiques faibles sont désactivés dans la configuration par défaut. Pour modifier la politique, l'administrateur doit soit utiliser la commande update-crypto-policies
pour ajuster les paramètres, soit se retirer manuellement des politiques de chiffrement à l'échelle du système.
La suite OpenSSH utilise deux ensembles de fichiers de configuration : un pour les programmes clients (c'est-à-dire ssh
, scp
, et sftp
), et un autre pour le serveur (le démon sshd
).
Les informations relatives à la configuration SSH de l'ensemble du système sont stockées dans le répertoire /etc/ssh/
. Les informations de configuration SSH spécifiques à l'utilisateur sont stockées dans le répertoire ~/.ssh/
, dans le répertoire personnel de l'utilisateur. Pour une liste détaillée des fichiers de configuration OpenSSH, voir la section FILES
dans la page de manuel sshd(8)
.
Ressources supplémentaires
-
Pages de manuel répertoriées à l'aide de la commande
man -k ssh
- Utilisation de politiques cryptographiques à l'échelle du système