Ce guide vous montre comment installer, configurer et utiliser un serveur SSH de manière sécurisée et pratique.
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.
openssh sur le serveur
(Ubuntu/Debian) :sudo apt update && sudo apt install -y openssh-serversystemd) 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 Pour sécuriser le serveur SSH :
/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_usersudo systemctl restart sshssh-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)ssh-copy-id) :ssh-copy-id -i ~/.ssh/id_ed25519.pub user@serverOu 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"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 # XManuelle :
ssh -i ~/.ssh/id_ed25519 -p 2222 user@localhostAvec ssh-agent :
ssh-add ~/.ssh/id_ed25519/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 nosudo sshd -T
sudo sshd -T | grep -E 'passwordauthentication|challengeresponseauthentication'# Doit être refusé !
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no -p 2222 user@localhostLa configuration du client via un fichier de configuration est pratique, notamment pour gérer les connexions à plusieurs serveurs.
~/.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...
ssh server