sudo apt update
sudo apt install openssh-serverSSH est un protocole réseau cryptographique permettant de sécuriser …
les communications entre deux systèmes sur un réseau non sécurisé.
SSH a remplacé les protocoles non chiffrés comme Telnet, rlogin et FTP dans la quasi-totalité des usages d’administration moderne. |
Accès à distance à des serveurs ou équipements réseau
Exécution de commandes et scripts à distance
Transfert de fichiers sécurisé (SCP, SFTP)
Tunneling et redirection de ports
Algorithmes modernes : AES, ChaCha20, RSA, ECDSA, Ed25519.
Par mot de passe
Par clés publiques/privées (recommandé)
Par certificats SSH
MFA via PAM, U2F, hardware tokens
Connexions interactives, scripts, transferts SCP/SFTP, tunnels.
Le client SSH initie une session avec le serveur
Négociation des algorithmes (key exchange, cipher, MAC)
Échange de clés (Diffie-Hellman / ECDH)
Authentification du serveur (clé d’hôte)
Authentification du client (mot de passe ou clé)
Les données échangées sont chiffrées de bout en bout.
sudo apt update
sudo apt install openssh-serversudo yum install openssh-server
sudo systemctl enable --now sshdsudo systemctl start ssh
sudo systemctl enable ssh
sudo systemctl status ssh/etc/ssh/sshd_config — modifier puis redémarrer :
sudo systemctl restart ssh# Changer le port par défaut
Port 2222
# Interdire la connexion root
PermitRootLogin no
# Authentification par clé uniquement
PasswordAuthentication no
PubkeyAuthentication yes
# Limiter les utilisateurs autorisés
AllowUsers alice bob
# Limiter les tentatives
MaxAuthTries 3
LoginGraceTime 30Toujours tester la nouvelle configuration dans une seconde session avant de fermer la session active — un sshd_config cassé peut vous verrouiller dehors ! |
ssh username@hostname_or_ipssh -p 2222 username@hostnamessh-keygen -t ed25519 -C "boris@example.com"Préférer Ed25519 à RSA : clés plus courtes, signatures plus rapides, sécurité équivalente à RSA-3072. |
ssh-copy-id username@hostname# Local → distant
scp file.txt user@host:/remote/path/
# Distant → local
scp user@host:/remote/file.txt /local/path/
# Récursif
scp -r dossier/ user@host:/remote/sftp user@host
# Commandes courantes :
# ls, cd, pwd, get, put, mget, mput# Accéder à une BDD distante via le tunnel
ssh -L 3306:localhost:3306 user@host# Exposer un service local sur le serveur distant
ssh -R 8080:localhost:80 user@hostssh -D 1080 user@hostLe tunneling SSH est un VPN du pauvre : utile pour traverser un firewall ou accéder à un service interne sans VPN dédié. |
Utiliser uniquement des clés (jamais de mot de passe)
Désactiver root (PermitRootLogin no)
Limiter les utilisateurs (AllowUsers)
Restreindre par IP via le pare-feu ou Match Address
Surveiller les logs (/var/log/auth.log)
Installer Fail2Ban contre le brute-force
Mettre à jour régulièrement OpenSSH
sudo apt install fail2ban
sudo systemctl enable --now fail2ban# UFW : autoriser SSH depuis le LAN uniquement
sudo ufw allow from 192.168.1.0/24 to any port 22
# nftables / iptables
iptables -A INPUT -p tcp --dport 22 \
-s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROPNe jamais exposer SSH directement sur Internet sans : clés uniquement, fail2ban, port non standard ou bastion d’accès. |
Tmux / Screen — sessions persistantes
Fail2Ban — bloque les attaques brute force
ssh-agent — déverrouille les clés une seule fois
PuTTY / MobaXterm — clients Windows
Ansible / Fabric — automation multi-serveurs
SSHFS — monter un répertoire distant
sshfs user@host:/remote/dir /local/mount/pointIdéal pour scripts CI/CD, sauvegardes automatisées, déploiement.
# Ansible : exécuter une commande sur tous les serveurs
ansible all -i inventory -m shell -a "uptime"Plus scalable que les clés publiques pour des grandes flottes (révocation centralisée, durée de vie limitée).
SSH est l’outil universel d’administration distante. Bien configuré (clés, port custom, fail2ban, bastion), il offre un excellent compromis sécurité/ergonomie. |
Toujours préférer SSH à Telnet, FTP, rlogin — qui transmettent les credentials en clair.
À combiner avec : Hardening · Moindre privilège · Routeurs · 802.1X |