Linux : Configuration de SSH
Le protocole SSH permet aux administrateurs Linux de se connecter à n’importe quel nombre de systèmes distants à partir de leur propre terminal de ligne de commande. SSH est un service client-serveur fournissant des connexions sécurisées et cryptées via une connexion réseau. Cela nous permet d’accéder à d’autres systèmes Linux ou à tout appareil qui accepte les connexions SSH, tels que les routeurs et les pare-feu, et d’autres systèmes d’exploitation.
Un utilisateur peut également configurer un serveur SSH sur son propre ordinateur s’il souhaite autoriser les connexions entrantes. Cela peut être utile si vous souhaitez accéder à votre ordinateur lorsque vous n’êtes pas à votre bureau, ou si vous avez d’autres utilisateurs sur votre système qui ont besoin d’utiliser l’ordinateur. Dans ce tutoriel, nous allons passer en revue les instructions étape par étape pour configurer SSH à la fois en tant que client et serveur sur toutes les principales distributions Linux.
En plus de nous fournir un moyen sûr et chiffré de nous connecter à des systèmes distants, le protocole SSH peut également être utilisé pour la redirection de port, ce qui nous permet de chiffrer le trafic entre deux systèmes pour à peu près n’importe quel protocole.
Dans ce tutoriel, vous allez apprendre :
- Comment installer le client et le serveur SSH sur toutes les principales distributions Linux
- Comment utiliser la commande
sshpour se connecter à un serveur distant - Comment démarrer, arrêter, activer et désactiver le service SSH
- Comment autoriser les connexions SSH entrantes via le pare-feu du système
- Recommandations pour la configuration et la sécurité du serveur SSH
Comment installer SSH sur Linux
La première chose que nous devons faire est d’installer SSH. Des progiciels distincts sont disponibles selon que vous souhaitez installer le progiciel client, le progiciel ou les deux.
- Le package client OpenSSH vous permettra d’utiliser SSH pour vous connecter ou initier des connexions à des systèmes distants.
- Le package OpenSSH Server vous permettra de configurer le service SSH et d’accepter les connexions entrantes. Il n’est pas nécessaire (ou recommandé) d’installer ce paquet si vous prévoyez uniquement d’utiliser SSH en tant que client.
La commande SSH est généralement disponible par défaut sur toutes les distributions Linux, mais si votre système ne l’a pas, vous pouvez utiliser la commande appropriée ci-dessous pour installer le paquet client OpenSSH avec le gestionnaire de paquets de votre système. La deuxième commande de chaque exemple ci-dessous installera le package Server (ignorez si vous n’en avez pas besoin).
Pour installer OpenSSH Client and Server sur Ubuntu, Debian et Linux Mint :
sudo apt update
sudo apt install openssh-client
sudo apt install openssh-server
Pour installer OpenSSH Client and Server sur Fedora, CentOS, AlmaLinux et Red Hat :
sudo dnf install openssh
sudo dnf install openssh-server
Pour installer OpenSSH Client and Server sur Arch Linux et Manjaro :
sudo pacman -S openssh # all in one package
Utilisation de la commande SSH
Maintenant que SSH est installé, nous pouvons utiliser la commande
sshpour nous connecter à un serveur distant et nous connecter. La syntaxe de base est la suivante, oùuserest le nom d’utilisateur etlinuxconfig.orgest le serveur distant. Vous pouvez également utiliser l’adresse IP au lieu du nom d’hôte.ssh user@linuxconfig.orgLe port par défaut pour l’écoute SSH est le 22. Si le système distant exécute le service SSH sur un port autre que celui par défaut, vous pouvez spécifier ce port avec l’option
-pdans votre commande. L’exemple suivant montre comment vous pouvez vous connecter en SSH à un système distant qui exécute le service sur le port 2210.ssh -p 2210 user@linuxconfig.orgL’installation de SSH nous donne également accès à la commande scp. La commande scp sous Linux est utilisée pour copier des fichiers et des répertoires vers ou depuis un système distant. Il fonctionne de manière très similaire à la commande cp, sauf qu’il copie des fichiers vers ou depuis d’autres systèmes qui se trouvent soit sur votre réseau local, soit quelque part sur Internet. Prenons un exemple simple où nous utilisons la commande scp pour copier un fichier local nommé
file.txtsur un serveur distant avec le nomd’hôte linuxconfig.org.scp file.txt user@linuxconfig:/path/to/dest
Si vous en avez assez de saisir votre mot de passe à chaque fois, vous pouvez vous authentifier à l’aide de clés RSA à la place.
Comment configurer le serveur SSH
Pour permettre aux utilisateurs de se connecter à votre système via SSH, nous allons vous montrer comment contrôler le service et autoriser les connexions via votre pare-feu dans les étapes ci-dessous.
Pour commencer à accepter les connexions SSH entrantes, nous devons démarrer le service SSH avec la commande
systemctl. Pour démarrer ou arrêter le serveur SSH :sudo systemctl start sshd AND sudo systemctl stop sshdPour activer (faire démarrer SSH automatiquement au démarrage du système) ou désactiver le serveur SSH :
sudo systemctl enable ssh OR sudo systemctl disable sshVérifiez si le serveur SSH est en cours d’exécution à l’aide de la commande
systemctl status.sudo systemctl status sshAfin d’accepter les connexions entrantes, vous devrez également autoriser le service via le pare-feu de votre système. Les commandes pour ce faire peuvent différer en fonction de votre distribution Linux. Utilisez ceux qui conviennent ci-dessous.
Sur Ubuntu et les systèmes utilisant ufw (pare-feu simple) :
sudo ufw allow sshSur les distributions basées sur RHEL ou toute autre utilisant firewalld :
sudo firewall-cmd --zone=public --permanent --add-service=ssh sudo firewall-cmd --reloadOu si vous utilisez simplement iptables et pas de pare-feu frontal :
sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
C’est tout ce qu’il y a à faire. Tant qu’il n’y a pas de routeur physique ou de pare-feu bloquant les connexions au serveur SSH, celui-ci doit être prêt à accepter les connexions entrantes.
Autres recommandations sur le serveur SSH
Une fois que votre serveur SSH est prêt à accepter les connexions entrantes, vous pouvez appliquer certaines recommandations de configuration et de sécurité. Nous avons compilé ci-dessous quelques-uns des plus importants et vous avons donné des liens vers des tutoriels plus approfondis pour une lecture plus approfondie :
- Comment tirer le meilleur parti d’OpenSSH - Copie de fichiers entre machines avec
scp, authentification basée sur les clés, connexions enregistrées, montage de systèmes de fichiers via SSH - Syntaxe et exemples de connexion à distance SSH – Activation de la connexion root, exécution de commandes via SSH, utilisation de tar sur SSH, ajout d’alias SSH
- Bonnes pratiques en matière de sécurisation SSH : utilisation de clés SSH, modification du port par défaut, autorisation de connexion à des utilisateurs spécifiques
Réflexions finales
Dans ce tutoriel, nous avons vu comment configurer SSH sur un système Linux. Cela incluait l’utilisation de SSH en tant que package client et de la commande ssh, ainsi que la configuration de SSH en tant que service à l’écoute des connexions entrantes. SSH est un protocole essentiel pour la plupart des systèmes Linux, car il vous permet d’ouvrir des terminaux distants à n’importe quel nombre de systèmes, ou de gérer votre propre système depuis Internet. Nous pouvons également faire d’autres choses pratiques comme copier des fichiers à distance ou créer des tunnels cryptés pour d’autres protocoles.

