Comment installer et configurer SSH
SSH (Secure Shell) est un protocole utilisé pour se connecter en toute sécurité à des systèmes distants, exécuter des commandes et transférer des données. Il offre aux administrateurs système, aux développeurs et aux utilisateurs une méthode sécurisée pour gérer des serveurs et d’autres périphériques à distance, à l’aide de connexions cryptées. L’installation et la configuration de SSH sont essentielles pour accéder en toute sécurité aux serveurs, que ce soit pour l’administration du système, le travail à distance ou le développement.
Dans cet article, nous allons vous expliquer comment installer et configurer SSH sous Linux, en abordant les principes de base, les options de configuration et les recommandations en matière de sécurité.
Qu’est-ce que SSH ?
SSH signifie Secure Shell et permet aux utilisateurs de se connecter en toute sécurité à un système distant via une interface de ligne de commande. Le protocole crypte les données entre le client et le serveur, ce qui en fait une méthode de communication sécurisée, en particulier pour l’accès aux serveurs via un réseau non sécurisé comme l’internet.
SSH fonctionne par défaut sur le port 22 et peut être utilisé pour :
- La connexion à distance à des serveurs
- Le transfert sécurisé de fichiers (à l’aide de SCP ou SFTP)
- L’exécution de commandes à distance
- Le transfert de port et le tunneling
Étape 1 : Installation de SSH
La plupart des distributions Linux sont livrées avec SSH préinstallé, mais si ce n’est pas le cas, vous pouvez facilement l’installer à l’aide du gestionnaire de paquets de votre distribution.
Pour Ubuntu/Debian :
Pour CentOS/RHEL :
Pour Fedora :
Pour Arch Linux :
Après l’installation, vous aurez le serveur et le client OpenSSH installés, ce qui vous permettra de faire fonctionner un serveur SSH et de vous connecter à d’autres serveurs SSH.
Étape 2 : Démarrer et activer le service SSH
Une fois l’installation terminée, vous devez démarrer le service SSH (également connu sous le nom de sshd – démon SSH) et l’activer pour qu’il s’exécute au démarrage du système.
Démarrage du service SSH :
Activation du démarrage de SSH au démarrage :
Vous pouvez vérifier si SSH fonctionne correctement en tapant :
Si le service fonctionne, vous verrez un état actif indiquant que SSH est prêt à accepter des connexions.
Étape 3 : Configuration de base de SSH
Le comportement de SSH est contrôlé par le fichier de configuration situé à l’adresse :
Vous pouvez éditer ce fichier pour modifier les paramètres SSH, tels que la modification du port par défaut, la désactivation de la connexion root ou la mise en place d’une authentification basée sur une clé.
Pour modifier le fichier, utilisez un éditeur de texte tel que nano ou vim :
Les changements de configuration les plus courants sont les suivants :
1. Modifier le port SSH par défaut
Pour des raisons de sécurité, il est conseillé de remplacer le port SSH par défaut (22) par un autre. Cela permet de réduire le risque d’attaques automatisées ciblant le port SSH par défaut.
Recherchez la ligne suivante dans le fichier de configuration :
Décommentez-la et modifiez le numéro de port :
Après avoir enregistré le fichier, redémarrez le service SSH pour appliquer les modifications :
Veillez à mettre à jour les règles de votre pare-feu pour autoriser les connexions sur le nouveau port.
2. Désactiver le login racine
Permettre à l’utilisateur root de se connecter via SSH constitue un risque pour la sécurité. Pour éviter cela, trouvez la ligne suivante dans le fichier de configuration :
Remplacez-la par
Cela empêchera l’accès direct à la racine via SSH. Les utilisateurs peuvent toujours se connecter avec un compte normal, puis passer à l’utilisateur root en utilisant sudo ou su.
3. Activer l’authentification par clé
L’authentification par clé SSH est une méthode plus sûre que l’utilisation de mots de passe. Elle consiste à générer une paire de clés SSH (clés publique et privée) et à utiliser la clé privée pour s’authentifier.
Pour appliquer l’authentification par clé, recherchez les lignes suivantes et assurez-vous qu’elles ont la valeur “yes” :
Cela désactive la connexion par mot de passe et n’autorise l’accès SSH que par l’authentification par clé.
Étape 4 : Générer des clés SSH (authentification par clé)
Les paires de clés SSH constituent un moyen sûr de se connecter sans mot de passe. Voici comment générer et configurer des clés SSH :
Étape 1 : Générer la paire de clés SSH
Sur votre machine locale, exécutez la commande suivante pour générer une paire de clés :
Vous serez invité à saisir un nom de fichier pour enregistrer la clé (ou à appuyer sur Entrée pour utiliser l’emplacement par défaut) et une phrase de passe facultative pour plus de sécurité.
Deux fichiers sont créés :
- ~/.ssh/id_rsa : votre clé privée (gardez-la en sécurité et ne la partagez pas).
- ~/.ssh/id_rsa.pub : Votre clé publique (elle peut être partagée et ajoutée à des serveurs distants).
Étape 2 : Copier la clé publique sur le serveur
Pour utiliser la clé pour la connexion SSH, copiez la clé publique sur le serveur distant auquel vous souhaitez accéder. Vous pouvez le faire à l’aide de la commande ssh-copy-id :
Remplacez nom d’utilisateur par le nom d’utilisateur de votre serveur distant et remote_host par l’adresse IP ou le nom d’hôte du serveur.
Cela copiera votre clé publique sur le serveur et l’ajoutera au fichier ~/.ssh/authorized_keys, ce qui vous permettra de vous connecter sans mot de passe.
Étape 3 : Se connecter à l’aide de la clé SSH
Vous pouvez maintenant vous connecter au serveur distant à l’aide de votre clé privée :
Si vous avez défini un port personnalisé, indiquez-le avec l’option -p :
Étape 5 : Sécuriser votre configuration SSH
Après avoir configuré SSH, il est important de suivre les meilleures pratiques de sécurité pour s’assurer que votre serveur est protégé contre les accès non autorisés.
1. Utiliser des mots de passe forts (si vous utilisez l’authentification par mot de passe)
Si vous n’utilisez pas d’authentification par clé, veillez à ce que tous les comptes utilisateurs utilisent des mots de passe forts et complexes.
2. Utiliser un pare-feu
Assurez-vous que le pare-feu de votre serveur n’autorise le trafic que sur le port SSH que vous utilisez. Par exemple, si vous avez changé SSH pour le port 2222, autorisez le trafic sur ce port en utilisant ufw (sur Ubuntu/Debian) ou firewalld (sur CentOS/RHEL).
3. Limiter l’accès SSH
Limitez l’accès SSH à des adresses ou à des plages d’adresses IP spécifiques en configurant le pare-feu ou en utilisant les fichiers /etc/hosts.allow et /etc/hosts.deny.
Étape 6 : Test et dépannage de SSH
Après avoir configuré SSH, il est important de tester votre installation. Essayez de vous connecter à l’aide de SSH pour vous assurer que tout fonctionne correctement.
Conseils courants de dépannage SSH :
- Vérifiez les paramètres du pare-feu : Assurez-vous que le pare-feu ne bloque pas le port SSH.
- Vérifiez l’état du service SSH : Assurez-vous que le service SSH fonctionne avec systemctl status ssh.
- Vérifier la configuration : Vérifiez que le fichier /etc/ssh/sshd_config n’est pas mal configuré.
- Utilisez le mode Verbose pour le débogage : En cas de problème, utilisez l’option -v lors de la connexion pour obtenir des informations détaillées :
Conclusion
L’installation et la configuration de SSH est une compétence fondamentale pour tout administrateur ou utilisateur Linux qui doit gérer des systèmes distants en toute sécurité. En suivant ce guide, vous pourrez installer SSH, le configurer pour un accès sécurisé et mettre en œuvre les meilleures pratiques pour protéger votre serveur contre les accès non autorisés. Une fois configuré, SSH devient un outil puissant pour la gestion à distance, l’automatisation et la communication sécurisée entre les systèmes.