Comprendre l’accès SSH

Dans le monde interconnecté d’aujourd’hui, la gestion des serveurs à distance est un élément essentiel de l’administration des systèmes. Que vous soyez développeur, administrateur système ou chef d’entreprise gérant un serveur privé virtuel, il est essentiel de comprendre l’accès SSH (Secure Shell) pour garantir à la fois la sécurité et l’efficacité.

Qu’est-ce que SSH ?

SSH (Secure Shell) est un protocole réseau cryptographique qui permet aux utilisateurs d’accéder à un ordinateur distant et de le gérer en toute sécurité sur un réseau non sécurisé.
Au lieu d’envoyer des informations en texte clair comme les anciens protocoles (Telnet, FTP, etc.), SSH crypte la session, protégeant ainsi les informations sensibles telles que les noms d’utilisateur, les mots de passe et les commandes.

SSH fonctionne généralement sur le port 22, mais les administrateurs le modifient souvent pour des raisons de sécurité.

Fonctionnement de SSH

SSH utilise un modèle client-serveur:

  • Le client SSH (votre ordinateur) initie la connexion.

  • Le serveur SSH (machine distante) accepte la connexion après avoir vérifié les informations d’identification.

L’authentification s’effectue de deux manières principales :

  • L ‘authentificationpar mot de passe (vous entrez un mot de passe)

  • Authentificationpar clé (vous utilisez une paire de clés cryptographiques privée/publique)

Configuration de l’accès SSH

1. Installer un client SSH
La plupart des systèmes Linux et macOS sont livrés avec un client SSH préinstallé.
Pour Windows, vous pouvez utiliser

  • Windows Terminal (Windows 10 )

  • PuTTY (un client autonome populaire)

  • OpenSSH pour Windows (optionnel)

2. Se connecter à un serveur
Utilisez la commande SSH de base :

ssh username@server_ip_address

Exemple :

ssh admin@192.168.1.10

3. Accepter la clé d’hôte
Lors de la première connexion, le client vous demandera de vérifier la clé d’hôte du serveur pour des raisons de sécurité.

4. S’authentifier

  • Si vous avez un mot de passe, vous serez invité à le saisir.

  • Avec une clé privée, SSH utilise la clé automatiquement ou vous la spécifiez :

    ssh -i /path/to/privatekey.pem username@server_ip_address

Meilleures pratiques de sécurité SSH

  1. Désactiver la connexion par mot de passe
    Passez à l’authentification par clé uniquement. Il est beaucoup plus difficile de forcer une clé cryptographique qu’un mot de passe.

  2. Modifier le port SSH par défaut
    Le remplacement du port 22 par un autre port aléatoire réduit les tentatives de balayage automatique.

  3. Utiliser des clés SSH fortes et uniques
    Générez des clés avec un cryptage d’au moins 2048 bits(ssh-keygen -t rsa -b 4096).

  4. Limiter l’accès SSH par adresse IP
    Configurez les règles du pare-feu pour n’autoriser l’accès SSH qu’à partir d’adresses IP de confiance.

  5. Activer l’authentification à deux facteurs (2FA)
    Certains serveurs SSH prennent en charge l’authentification à deux facteurs pour une authentification encore plus forte.

  6. Maintenir le logiciel à jour
    Mettez toujours à jour le logiciel de votre serveur SSH pour le protéger contre les vulnérabilités.

  7. Utiliser Fail2Ban ou des outils similaires
    Installez des outils qui bannissent automatiquement les IP qui tentent des attaques par force brute.

Commandes SSH utiles pour la gestion

  • Copier des fichiers entre un serveur local et un serveur distant:

    scp localfile.txt username@server_ip:/remote/directory/
  • Ouvrir un éditeur de fichiers interactif (comme nano, vim ou vi) pour modifier les fichiers du serveur.

  • Gérer les services (sur les serveurs Linux) :

    sudo systemctl restart apache2
    sudo systemctl status nginx
  • Surveiller l’activité du serveur:

    top
    htop
  • Quitter la session SSH:

    exit

SSH est un outil fondamental pour l’administration moderne des serveurs, permettant une gestion sécurisée et cryptée des systèmes distants.
En comprenant le fonctionnement de SSH et en suivant les meilleures pratiques de sécurité, vous pouvez gérer vos serveurs en toute confiance, protéger les données critiques et assurer la stabilité opérationnelle.

Que vous gériez un petit projet personnel ou une grande infrastructure d’entreprise, la connaissance de SSH est essentielle pour tout professionnel de l’informatique.