# Ubuntu server - authentification SSH par clés

<table id="bkmrk-difficult%C3%A9%2A-%3Cdescrip" style="border-collapse: collapse; width: 100%; height: 46.8px; border-width: 1px; border-style: hidden;"><colgroup><col style="width: 20%;"></col></colgroup><tbody><tr style="height: 46.8px;"><td style="height: 46.8px; border: 1px groove rgb(52,73,94);">[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/J4Rintermediaire-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/J4Rintermediaire-png.png)</td><td style="height: 46.8px; border-width: 1px; background-color: rgb(236,202,250); vertical-align: top;">Difficulté : Intermédiaire

Notions : SSH, chiffrement, PKI, clé

</td></tr></tbody></table>

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">I. Introduction</span>**</span>

Cette procédure vise à expliquer la mise en place de l'authentification par clé en complément, ou remplacement, de l'authentification par mot de passe.

Celle-ci renforce la sécurité pour l'administration du parc car elle ne nécessite plus d'échange de mot de passe pour l'authentification.

---

### <span style="color: rgb(52,73,94);">**<span style="text-decoration: underline;">II. Création du couple de clé</span>**</span>

Côté poste d'administration, se connecter avec l'utilisateur qui devra prendre la main sur les machines distante.

Utiliser la commande suivante pour générer un lot de clé :

```
ssh-keygen
```

Après le lancement, une série de question seront posées :

- Emplacement des fichiers de clé privée et clé publique.
- Passphrase de la clé.
- (si saisi ) Répétition de la passphrase.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/EDmimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/EDmimage-png.png)

Les clés sont alors générées.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/E7rimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/E7rimage-png.png)

---

### <span style="text-decoration: underline;">**<span style="color: rgb(52,73,94); text-decoration: underline;">II. Installation sur le serveur</span>**</span>

Il va ensuite falloir copier la <span style="color: rgb(132,63,161);">***clé publique***</span> (celle finissant pas .pub) sur les machines où il sera nécessaire de se connecter.

#### <span style="color: rgb(35,111,161);">**2.1 Vérifications préalables**</span>

Sur les machines de destinations, il faut s'assurer que le dossier '<span style="color: rgb(132,63,161);">***.ssh***</span>' existe dans le répertoire '<span style="color: rgb(132,63,161);">***home***</span>' de l'utilisateur.

Si ce n'est pas le cas, le créer.

<p class="callout info">**Info** : Il est important que les droits soient bien définis sur le répertoire .ssh et la clé copiée. Sinon la connexion SSH échouera car le serveur jugera que la clé est mal protégée et a pu être altérée.</p>

```
cd ~
mkdir .ssh && chmod 700 .ssh
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/FpHimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/FpHimage-png.png)

Puis créer le fichier '<span style="color: rgb(132,63,161);">***authorized\_keys***</span>' qui contiendra les clé autorisées pour cet utilisateur.

```
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/cgFimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/cgFimage-png.png)

Il sera également nécessaire de dé-commenter la ligne du fichier '<span style="color: rgb(132,63,161);">***/etc/ssh/sshd\_config***</span>' afin d'autoriser le login par clé :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/B9Iimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/B9Iimage-png.png)

Puis relancer le service avec :

```
service ssh restart
```

#### <span style="color: rgb(35,111,161);">**2.2 Copier la clé**</span>

La méthode varie selon le client.

<details id="bkmrk-depuis-un-linux-%C2%A0-%C2%A0"><summary>Depuis un linux</summary>

Utiliser la commande suivante pour pousser la clé sur le client :

```
ssh-copy-id <utilisateur>@<ip ou hostname>
```

Si c'est la première connexion, il est demandé si le serveur de destination doit être ajouté aux serveurs connus de confiance.

Répondre '<span style="color: rgb(132,63,161);">***yes***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Gxaimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/Gxaimage-png.png)

Puis, lorsque demandé, saisir le mot de passe du compte pour se connecter au serveur.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/4vtimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/4vtimage-png.png)

La clé à été normalement ajouté au store du serveur et est visible dans le fichier '<span style="color: rgb(132,63,161);">***~/.ssh/authorized\_keys***</span>'.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/naJimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/naJimage-png.png)

</details><details id="bkmrk-depuis-un-windows-su"><summary>Depuis un windows</summary>

Sur windows, la commande '<span style="color: rgb(132,63,161);">***ssh-copy-id***</span>' n'existe pas. Il faudra donc copier cette clé manuellement sur le serveur.

Pour cela, ouvrir un cmd, puis afficher le contenu du fichier de la clé publique.

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/1xjimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/1xjimage-png.png)

Copier le contenu de cette clé dans le presse papier. Puis utiliser la commande suivante pour exécuter une commande distante sur le serveur linux :

```
ssh -t <user>@<ip ou hostname> "(echo '<lacléssh>' >> ~/.ssh/authorized_keys)"
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/tNgimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/tNgimage-png.png)

</details>Dans les deux cas, il est possible de vérifier l'ajout des clés avec :

```
cat ~/.ssh/authorized_keys
```

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/rFKimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/rFKimage-png.png)

---

### <span style="text-decoration: underline; color: rgb(52,73,94);">**III. Connexion et sécurisation**</span>

#### <span style="color: rgb(35,111,161);">**3.1 Connexion**</span>

Se connecter au serveur avec la commande habituelle.

```
ssh <user>@<ip ou hostname>
```

Aucun mot de passe n'a été demandé (sauf si une passphrase a été créée pour la clé, auquel cas c'est elle qui sera demandée).

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/T6Mimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/T6Mimage-png.png)

#### <span style="color: rgb(35,111,161);">**3.2 Sécurisation**</span>

Pour aller plus loin, il est possible de désactiver purement et simplement la connexion par login/mot de passe.

Pour cela, modifier le fichier '<span style="color: rgb(132,63,161);">***/etc/ssh/sshd\_config***</span>'. Et dé-commenter puis changer l'option correspondante comme suit :

[![image.png](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/nNhimage-png.png)](https://docs.labs404.fr/uploads/images/gallery/2026-07/scaled-1680-/nNhimage-png.png)

Puis relancer le service avec :

```
service ssh restart
```

Ainsi, seul le login par clé sera autorisé sur le serveur.