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 (un minimum requis) le serveur SSH, il est fortement recommandé :
/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 sshRemplacez user par votre utilisateur UNIX (sur la VM)
ssh-keygen:ssh-keygen -t ed25519 -C "user@vm"ssh-keygen a généré deux fichiers nommés par défaut
:
~/.ssh/id_ed25519 (clé privée, à garder secrète !)
~/.ssh/id_ed25519.pub (clé publique, à déployer sur le serveur)ssh-copy-id :ssh-copy-id -p 2222 -i ~/.ssh/id_ed25519.pub user@localhostOu 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 # XPour se connecter en utilisant les clefs, plusieurs méthodes sont possibles :
Manuelle :
ssh -i ~/.ssh/id_ed25519 -p 2222 user@localhostAvec ssh-agent :
ssh-add ~/.ssh/id_ed25519Via un fichier de configuration ssh (à privilégier, ce que nous allons faire ici)
La configuration du client via un fichier de configuration est pratique, notamment pour gérer plusieurs connexions.
~/.ssh/config#Configuration d'un host (serveur SSH)
Host server # Alias de votre serveur
HostName 127.0.0.1 # Son IP (NAT, ici l'ip de la vm est localhost)
Port 2222 # Port (NAT)
User mon_user # user
IdentityFile ~/.ssh/id_ed25519 # Clé privée à utiliser
#Vous pouvez ajouter à la suite d'autre hosts, en indiquant un Host différent à chaque fois.
ssh server/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 yes
PasswordAuthentication nosudo sshd -T
sudo sshd -T | grep -E 'passwordauthentication|challengeresponseauthentication'# Doit être refusé !
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no -p 2222 user@localhost