---
title: "Installer et configurer SSH sur Ubuntu en toute sécurité"
description: "Apprenez à installer OpenSSH, générer des clés Ed25519, désactiver l'accès root et protéger votre serveur contre les attaques."
url: "https://www.alemasone.com/fr/installer-configurer-ssh-ubuntu-securite/"
language: "fr"
published: 2024-12-02
updated: 2026-09-19
categories: ["Sécurité Et Confidentialité"]
translations:
  it: "https://www.alemasone.com/it/configurare-ssh-ubuntu/"
  en: "https://www.alemasone.com/en/securely-install-configure-ssh-ubuntu/"
  es: "https://www.alemasone.com/es/instalar-configurar-ssh-ubuntu-seguro/"
  pt: "https://www.alemasone.com/pt/configurar-ssh-ubuntu-seguranca/"
  de: "https://www.alemasone.com/de/ssh-ubuntu-sicher-installieren-konfigurieren/"
---

# Installer et configurer SSH sur Ubuntu en toute sécurité

Un serveur SSH accessible depuis Internet reçoit des tentatives de connexion automatiques quelques minutes seulement après son démarrage. Deux paramètres éliminent la quasi-totalité des risques : **l'accès uniquement par clés** et **la désactivation du login root**. Cela prend cinq minutes, et doit être fait avant toute autre chose.

SSH est le canal chiffré avec lequel vous administrez un ordinateur Linux à distance : terminal, transfert de fichiers, tunnel pour d'autres services. Sur Ubuntu Desktop, le serveur SSH n'est pas installé par défaut, alors que sur les images destinées aux serveurs, il l'est généralement déjà. Dans ce guide, vous allez l'installer, vous y connecter depuis votre ordinateur avec une clé et le sécuriser.

## Installation

```bash
sudo apt update
sudo apt install openssh-server
```

Le service démarre tout seul. Vérifiez son état :

```bash
sudo systemctl status ssh
```

![Terminal Ubuntu avec le résultat de systemctl status ssh et le service marqué comme active running](systemctl-status-ssh-ubuntu.png "La ligne à vérifier est celle contenant active (running)")

Sur Ubuntu 24.04, ne paniquez pas si, avant la première connexion, l'état apparaît en *inactive* avec la ligne *TriggeredBy: ssh.socket* : depuis Ubuntu 22.10, SSH est lancé par le socket lors de la première tentative de connexion, et `sudo systemctl status ssh.socket` doit apparaître comme actif. Pour couper complètement l'accès à distance, par exemple pendant une maintenance, utilisez `sudo systemctl disable --now ssh.socket ssh`.

Si le pare-feu UFW est activé, autorisez SSH **avant** de fermer la session dans laquelle vous travaillez :

```bash
sudo ufw allow OpenSSH
sudo ufw enable
```

> **N'activez pas UFW avant d'avoir autorisé [OpenSSH](https://www.openssh.com/).** La connexion en cours sera coupée et vous resterez bloqué à l'extérieur. Sur un serveur distant auquel vous ne pouvez pas accéder physiquement, c'est l'erreur la plus coûteuse.

Depuis un autre ordinateur, connectez-vous avec :

```bash
ssh nomeutente@indirizzo-ip
```

La commande fonctionne de la même manière sous Linux, macOS, et Windows 10 et 11, qui possèdent déjà le client SSH installé : il suffit d'ouvrir le Terminal Windows ou PowerShell. Lors de la première connexion, on vous demandera de confirmer l'empreinte du serveur : tapez `yes`.

## Les clés : comment elles fonctionnent

Une paire de clés possède une partie privée, qui reste sur votre ordinateur et ne doit être donnée à personne, et une partie publique, que vous copiez sur le serveur. Lorsque vous vous connectez, le serveur vérifie que vous possédez la bonne clé privée, sans qu'aucun élément secret ne transite sur le réseau.

C'est plus sûr qu'un mot de passe car une clé ne peut pas être devinée : les attaques par force brute, qui testent des millions de combinaisons, ne servent à rien.

### Générer la paire de clés

Sur votre ordinateur, et non sur le serveur :

```bash
ssh-keygen -t ed25519 -C "il-mio-portatile"
```

![Terminal avec ssh-keygen -t ed25519 : phrase de passe, chemin des deux fichiers et empreinte de la clé](ssh-keygen-ed25519-ubuntu.png "La commande crée deux fichiers : la clé privée et la clé publique avec l'extension .pub")

Ed25519 est l'algorithme recommandé aujourd'hui : clés courtes, vérification rapide, sécurité élevée. Utilisez RSA uniquement si vous devez vous connecter à de vieux systèmes qui ne connaissent pas Ed25519, et dans ce cas avec au moins 4096 bits.

Lorsqu'on vous demande une **phrase de passe** (*passphrase*), saisissez-la : elle protège la clé si quelqu'un met la main sur votre ordinateur. Pour ne pas avoir à la taper à chaque fois, l'agent SSH s'en occupe en la mémorisant jusqu'à la fin de la session.

### Copier la clé publique sur le serveur

```bash
ssh-copy-id nomeutente@indirizzo-ip
```

Il ne vous demande le mot de passe qu'une seule fois et configure les bonnes permissions. Sur Windows `ssh-copy-id`, cela n'existe pas : ouvrez le fichier `C:\Users\<nome>\.ssh\id_ed25519.pub`, copiez son contenu et collez-le à la fin du fichier `~/.ssh/authorized_keys` sur le serveur.

**Testez immédiatement la connexion avec la clé depuis une seconde fenêtre, tout en gardant la première ouverte.** Ce n'est que lorsque cela fonctionne que vous pouvez passer au blocage des mots de passe.

## Sécuriser la configuration

Les paramètres du serveur se trouvent dans `/etc/ssh/sshd_config`. Sur les versions récentes d'Ubuntu, il est préférable de ne pas toucher à ce fichier et de créer plutôt votre propre fichier dans `/etc/ssh/sshd_config.d/`, qui sera lu en complément :

```bash
sudo nano /etc/ssh/sshd_config.d/99-sicurezza.conf
```

Contenu recommandé :

```text
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
X11Forwarding no
MaxAuthTries 3
```

Rôle de chaque ligne :

| Paramètre | Effet |
|--------------|---------|
| `PermitRootLogin no` | Personne ne peut se connecter directement en tant que root : vous vous connectez avec votre utilisateur et utilisez `sudo` |
| `PasswordAuthentication no` | L'accès se fait uniquement par clés, les mots de passe sont rejetés |
| `KbdInteractiveAuthentication no` | Ferme une autre porte qui permettrait un accès par mot de passe |
| `MaxAuthTries 3` | Limite le nombre de tentatives pour chaque connexion |
| `X11Forwarding no` | Désactive la redirection graphique, que presque personne n'utilise |

Avant d'appliquer, vérifiez que la syntaxe est correcte :

```bash
sudo sshd -t
```

Si rien ne s'affiche, tout est en ordre et vous pouvez recharger le service :

```bash
sudo systemctl reload ssh
```

> **Gardez votre session actuelle ouverte** pendant que vous appliquez les modifications, et testez la nouvelle connexion depuis une autre fenêtre. Si vous avez fait une erreur, vous aurez toujours une connexion active pour rectifier le tir.

## Se défendre contre les attaques automatiques

**Changer le port** de 22 vers un numéro élevé ne rend pas le serveur plus sûr, mais cela réduit considérablement le bruit dans les logs, car la quasi-totalité des scans automatiques ne testent que le port standard. Cela se configure avec `Port 2222` dans votre fichier de configuration, en n'oubliant pas d'ouvrir le nouveau port sur le pare-feu (`sudo ufw allow 2222/tcp`). Depuis Ubuntu 22.10 et versions ultérieures, y compris la 24.04, il faut également effectuer `sudo systemctl daemon-reload` et `sudo systemctl restart ssh.socket` après la modification, sinon le serveur continuera d'écouter sur le port 22.

**[Fail2ban](https://github.com/fail2ban/fail2ban)** bloque temporairement les adresses qui se trompent plusieurs fois de suite :

```bash
sudo apt install fail2ban
```

Avec la configuration par défaut, il protège déjà SSH. Vous pouvez voir les adresses bloquées avec `sudo fail2ban-client status sshd`.

**Limiter les utilisateurs autorisés à se connecter** est simple et efficace : avec `AllowUsers nomeutente` dans la configuration, aucun autre compte ne peut se connecter, même avec des identifiants valides.

## Le fichier de configuration du client

Sur l'ordinateur depuis lequel vous vous connectez, le fichier `~/.ssh/config` vous évite de mémoriser les adresses et les ports :

```text
Host server-casa
    HostName 192.168.1.50
    User alessandro
    Port 2222
    IdentityFile ~/.ssh/id_ed25519
```

À partir de ce moment, il suffit d'utiliser `ssh server-casa`. Le nom fonctionne également avec `scp` et `rsync`.

## Transférer des fichiers

```bash
scp documento.pdf server-casa:/home/alessandro/
```

Pour des dossiers entiers ou des copies que vous répétez souvent, utilisez `rsync`, qui ne transfère que ce qui a été modifié :

```bash
rsync -avz --progress cartella/ server-casa:/percorso/di/destinazione/
```

Si vous préférez un logiciel avec une interface graphique, FileZilla et WinSCP se connectent en SFTP en utilisant les mêmes identifiants et la même clé.

## Foire aux questions

### Si je désactive les mots de passe et que je perds ma clé privée, est-ce que je reste bloqué ?

Oui, et c'est un risque à gérer au préalable. Deux précautions : ajoutez sur le serveur les clés publiques de tous les appareils depuis lesquels vous vous connecterez, et conservez une copie de votre clé privée dans un endroit sûr, par exemple dans votre gestionnaire de mots de passe. Si le serveur est une machine virtuelle chez un fournisseur, il y a généralement aussi une console d'urgence dans le panneau de configuration web.

### Ed25519 ou RSA ?

Ed25519 dès que possible : c'est plus moderne, les clés sont plus courtes et la vérification est plus rapide. RSA 4096 bits uniquement pour les vieux systèmes qui ne supportent pas Ed25519.

### Changer le port sert-il à quelque chose ?

Cela n'augmente pas la sécurité, car un scan ciblé trouvera le service de toute façon. Cependant, cela réduit considérablement les tentatives automatiques et rend les logs plus lisibles : lorsqu'une tentative apparaît, vous savez qu'elle mérite votre attention.

### Comment me connecter si l'adresse IP de ma maison change ?

Avec un service de DNS dynamique, qui associe un nom fixe à votre adresse et le met à jour automatiquement lorsqu'il change. De nombreux routeurs le supportent déjà via leurs paramètres. Alternativement, une [VPN comme Tailscale](/fr/meilleures-solutions-vpn-auto-helegee/) vous permet d'accéder au serveur sans ouvrir de ports sur le routeur.

### Que signifie l'avertissement indiquant que la clé de l'hôte a changé ?

Cela signifie que l'identité du serveur ne correspond plus à celle enregistrée lors de la première connexion. Cela peut être normal si vous avez réinstallé le système ou changé de machine, ou bien le signe de quelqu'un qui tente d'intercepter la connexion. Avant de continuer, comprenez la raison ; ce n'est qu'après que vous devez supprimer l'ancienne entrée avec `ssh-keygen -R indirizzo-ip`.
