Comment installer et configurer SSH ⋆ ALexHost SRL

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Use code at checkout:

Skills
17.12.2024

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 :

sudo apt update sudo apt install openssh-server

Pour CentOS/RHEL :

sudo yum install openssh-server

Pour Fedora :

sudo dnf install openssh-server

Pour Arch Linux :

sudo pacman -S openssh

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 :

sudo systemctl start ssh

Activation du démarrage de SSH au démarrage :

sudo systemctl enable ssh

Vous pouvez vérifier si SSH fonctionne correctement en tapant :

sudo systemctl status ssh

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 :

/etc/ssh/sshd_config

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 :

sudo nano /etc/ssh/sshd_config

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 :

#Port 22

Décommentez-la et modifiez le numéro de port :

Port 2222

Après avoir enregistré le fichier, redémarrez le service SSH pour appliquer les modifications :

sudo systemctl restart ssh

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 :

PermitRootLogin yes

Remplacez-la par

PermitRootLogin no

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” :

PubkeyAuthentication yes PasswordAuthentication no

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 :

ssh-keygen -t rsa -b 4096

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 :

ssh-copy-id nom_d’utilisateur@hôte_distant

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 :

ssh nomd’utilisateur@hôte_distant

Si vous avez défini un port personnalisé, indiquez-le avec l’option -p :

ssh -p 2222 nom_d’utilisateur@hôte_distant

É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).

sudo ufw allow 2222/tcp sudo ufw enable

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 :

  1. Vérifiez les paramètres du pare-feu : Assurez-vous que le pare-feu ne bloque pas le port SSH.
  2. Vérifiez l’état du service SSH : Assurez-vous que le service SSH fonctionne avec systemctl status ssh.
  3. Vérifier la configuration : Vérifiez que le fichier /etc/ssh/sshd_config n’est pas mal configuré.
  4. 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 :
ssh -v nom_d’utilisateur@hôte_éloigné

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.

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Use code at checkout:

Skills