Recherche de site Web

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.

LE SAVIEZ-VOUS ?
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 ssh pour 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

  1. Maintenant que SSH est installé, nous pouvons utiliser la commande ssh pour nous connecter à un serveur distant et nous connecter. La syntaxe de base est la suivante, où user est le nom d’utilisateur et linuxconfig.org est le serveur distant. Vous pouvez également utiliser l’adresse IP au lieu du nom d’hôte.

    
    ssh user@linuxconfig.org
    
  2. Le 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 -p dans 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.org
    
  3. L’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.txt sur un serveur distant avec le nom d’hôte linuxconfig.org.

    
    scp file.txt user@linuxconfig:/path/to/dest
    

REMARQUE – CONNEXION SANS MOT
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.

  1. 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 sshd
    
  2. Pour 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 ssh
    
  3. Vérifiez si le serveur SSH est en cours d’exécution à l’aide de la commande systemctl status.

    
    sudo systemctl status ssh
    

  4. Afin 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 ssh
    

    Sur les distributions basées sur RHEL ou toute autre utilisant firewalld :

    
    sudo firewall-cmd --zone=public --permanent --add-service=ssh
    sudo firewall-cmd --reload
    

    Ou 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.

Articles connexes: