Comment activer SSH sur Ubuntu

Exécutez sudo apt update, puis sudo apt install openssh-server, puis sudo systemctl enable --now ssh. Si ufw est actif, exécutez aussi sudo ufw allow OpenSSH. Vérifiez avec ss -tln | grep ':22', puis connectez-vous depuis une autre machine avec ssh user@server.

Mis à jour le . Commandes exécutées dans des conteneurs jetables avec systemd : Ubuntu 24.04 (OpenSSH 9.6) et Ubuntu 26.04 (OpenSSH 10.2).

Installer et démarrer le serveur

sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh

Sur un système Ubuntu normal, le paquet se met à l'écoute dès son installation. La dernière commande ne gêne pas s'il l'est déjà, et elle rend la configuration explicite.

Vérifier qu'il écoute

ss -tln | grep ':22'

Vous devriez voir une ligne pour 0.0.0.0:22 et une pour [::]:22. Pour trouver l'adresse à laquelle se connecter, exécutez :

hostname -I

Pourquoi ssh.service peut afficher inactive alors que SSH fonctionne

Depuis Ubuntu 22.10, dont les versions 24.04 et 26.04, une unité nommée ssh.socket détient le port 22 par défaut et démarre ssh.service à la première connexion. Juste après l'installation, ou après sudo systemctl stop ssh, vous pouvez donc voir ceci tout en pouvant vous connecter :

systemctl is-active ssh.socket    # active
systemctl is-active ssh           # inactive until the first connection

C'est normal. Si vous arrêtez le service alors que le socket est actif, systemd vous avertit que l'unité qui le déclenche est toujours active, et la connexion suivante le redémarre. Pour vraiment arrêter SSH, arrêtez les deux :

sudo systemctl disable --now ssh ssh.socket

Si vous préférez l'ancien comportement, où sshd tourne en permanence et lit son port à chaque redémarrage, désactivez le socket :

sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh

Debian fait l'inverse par défaut : sur Debian 13, ssh.service est activé et ssh.socket est désactivé. Ubuntu 22.04 utilise aussi le service simple.

Ouvrir le pare-feu

ufw est désactivé par défaut sur la plupart des installations. Vérifiez-le d'abord :

sudo ufw status

S'il affiche Status: active, autorisez SSH :

sudo ufw allow OpenSSH

S'il affiche inactive et que vous voulez l'activer, ajoutez d'abord la règle puis activez-le. L'ordre compte, voir comment autoriser SSH dans ufw. Un serveur cloud a généralement un second pare-feu dans le panneau de l'hébergeur, que vous ouvrez là-bas.

Tester la connexion

Depuis une autre machine :

ssh user@server

La première connexion affiche l'empreinte du serveur et vous demande de confirmer. Si la connexion échoue, ces guides couvrent les messages courants : Connection refused et Connection timed out.

Ce qu'est cette empreinte, et où elle est conservée, est expliqué dans known_hosts et l'empreinte d'un hôte SSH.

Modifier la configuration

Les réglages se trouvent dans /etc/ssh/sshd_config et dans les fichiers de /etc/ssh/sshd_config.d/. Un fichier de ce dossier prend le pas sur le fichier principal, et certaines images en fournissent un qui règle la connexion par mot de passe : vérifiez donc ce qui est réellement appliqué :

sudo sshd -T | grep -i -E '^(port|passwordauthentication) '

Après une modification, vérifiez la syntaxe, puis redémarrez :

sudo sshd -t
sudo systemctl restart ssh

Un nouveau port ou une nouvelle adresse d'écoute est un cas différent, car le socket doit aussi être reconstruit. Voir comment changer le port SSH.

Ensuite, donnez-vous une clé plutôt qu'un mot de passe : générez une clé, puis désactivez la connexion par mot de passe.

Questions

SSH est-il installé par défaut sur Ubuntu ?

Le client l'est généralement. Le serveur dépend de la façon dont le système a été installé : Ubuntu Desktop ne l'inclut pas, et l'installeur Server le propose. Exécutez dpkg -l openssh-server pour vérifier.

Quelle est la différence entre ssh et sshd sur Ubuntu ?

sshd est le programme serveur. Sur Ubuntu, son unité systemd s'appelle ssh, et sshd est un alias créé quand vous activez l'unité : utilisez donc ssh dans les commandes.

Sources

Autres guides : SSH sur chaque système

Tous les guides