Guide : Installation et configuration configuration du serveur SSH

Ce guide vous montre comment installer, configurer et utiliser un serveur SSH de manière sécurisée et pratique.

Sur le serveur (VM) : installer et configurer le serveur SSH #

On supposera que la VM Debian server est configurée en mode NAT et que le port 2222 de la machine hôte est publié pour le port 22 de la VM.

Installation

  1. Installer openssh sur le serveur (Ubuntu/Debian) :
sudo apt update && sudo apt install -y openssh-server
  1. Lancer le service (via systemd) et vérifier que le serveur SSH est en cours d’exécution :
sudo systemctl enable --now ssh
sudo systemctl start ssh
#check
systemctl status ssh 

Configuration sécurisée

Pour sécuriser le serveur SSH :

  1. Éditer le fichier /etc/ssh/sshd_config avec votre éditeur favori :
PermitRootLogin no
#Laisser à yes pour l'instant, il faut d'abord déployer la clé via mot de passe !
PasswordAuthentication yes
PubkeyAuthentication yes
AllowUsers mon_user
  1. Redémarrer le service pour recharger la configuration :
sudo systemctl restart ssh

Sur la machine cliente (hôte) #

Création des clefs pour le chiffrement

  1. Générer une paire de clés publique/privée :
ssh-keygen -t ed25519 -C "mon_utilisateur@mon_serveur"

ssh-keygen a produit deux fichiers nommés par défaut :

~/.ssh/id_ed25519 (clé privée)
~/.ssh/id_ed25519.pub (clé publique)
  1. Copier (déployer) la clé publique sur le serveur (avec ssh-copy-id) :
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server

Ou manuellement :

cat ~/.ssh/id_ed25519.pub | ssh -p 2222 user@localhost "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

À propos de l’algorithme utilisé

L’algorithme Ed25519 repose sur la cryptographie à courbes elliptiques (ECC). Pourquoi Ed25519 ?

Autres algorithmes disponibles :

#RSA avec clé 4096 bits (moins efficace que Ed25519)
ssh-keygen -t rsa -b 4096  
# ECDSA (courbe P-384)
ssh-keygen -t ecdsa -b 384  

#À éviter !!
ssh-keygen -t dsa # X

Connexion et finalisation de la configuration #

  1. Se connecter avec la clef. Pour cela, plusieurs méthodes :
  1. Sur le serveur, maintenant que votre clef est déployée, désactiver la connexion par mot de passe (fichier /etc/ssh/sshd_config) :
#A présent que la clef est déployée on peut interdire l'accès par mot de passe
PasswordAuthentication no
  1. Vérifier la configuration :
sudo sshd -T
sudo sshd -T | grep -E 'passwordauthentication|challengeresponseauthentication'
  1. Depuis le client, tester que la connexion par mot de passe ne fonctionne plus :
# Doit être refusé !
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no -p 2222 user@localhost

Configuration du client SSH via un fichier de configuration (clé) #

La configuration du client via un fichier de configuration est pratique, notamment pour gérer les connexions à plusieurs serveurs.

  1. Créer ou éditer le fichier ~/.ssh/config
#Configuration d'un host (serveur SSH)
Host server                     # Alias de votre serveur
HostName 127.0.0.1              # Son IP (NAT)
Port 2222                       # Port (NAT)
User mon_user                   # user
IdentityFile ~/.ssh/id_ed25519  # Clé privée à utiliser

#En ajouter autant que nécessaire à la suite...
  1. Pour se connecter, il suffit à présent de saisir la commande :
ssh server

Références #