> ## Documentation Index
> Fetch the complete documentation index at: https://help.onetsolutions.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Clés SSH

> Ajoutez des clés SSH dans la console pour un accès sécurisé et sans mot de passe à vos instances

Une paire de clés SSH remplace le mot de passe lors de la connexion à une instance. La moitié privée reste sur votre machine et n'en sort jamais ; la moitié publique est déposée sur le serveur. Les clés enregistrées dans la console peuvent être installées sur une instance à sa création ou à sa réinstallation : un serveur neuf est ainsi joignable sans mot de passe dès le premier démarrage.

<Info>
  **Prérequis**

  * Un compte OnetSolutions avec un projet
  * Une paire de clés SSH sur votre machine, ou les commandes ci-dessous pour en créer une
</Info>

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

Si vous n'en avez pas, générez-la localement. Ed25519 est la recommandation actuelle : plus courte que RSA et plus rapide, sans perte de sécurité.

```bash theme={null}
# Générer une paire de clés Ed25519
ssh-keygen -t ed25519 -C "votre.email@exemple.com"
```

Acceptez le chemin par défaut et définissez une phrase de passe quand elle est demandée. Cette phrase protège la clé privée en cas de perte de votre machine — elle n'a pas à être saisie à chaque connexion si vous utilisez un agent.

Deux fichiers sont écrits :

| Fichier                 | Rôle                                                               |
| ----------------------- | ------------------------------------------------------------------ |
| `~/.ssh/id_ed25519`     | **Clé privée.** Ne la partagez jamais, ne la téléversez nulle part |
| `~/.ssh/id_ed25519.pub` | **Clé publique.** C'est celle que vous collez dans la console      |

Affichez la moitié publique pour la copier :

```bash theme={null}
cat ~/.ssh/id_ed25519.pub
```

La sortie tient sur une seule ligne, commence par `ssh-ed25519` et se termine par le commentaire que vous avez indiqué. Copiez la ligne entière.

<Warning>
  Ne collez jamais que le fichier terminant par `.pub`. Une clé privée commence par `-----BEGIN OPENSSH PRIVATE KEY-----` : si vous voyez cela, vous vous êtes trompé de fichier. Une clé privée qui a quitté votre machine doit être considérée comme compromise et remplacée.
</Warning>

## Ajouter une clé dans la console

<Steps>
  <Step title="Ouvrez les clés SSH">
    Dans la console, allez dans **Compute** et ouvrez l'onglet **Clés SSH**.
  </Step>

  <Step title="Lancez l'ajout">
    Cliquez sur **Ajouter une clé SSH**.
  </Step>

  <Step title="Nommez la clé">
    Renseignez **Nom de la clé** avec quelque chose qui identifie la machine concernée, par exemple `mon-portable`. Ce nom n'est qu'une étiquette pour vous.
  </Step>

  <Step title="Collez la clé publique">
    Collez le contenu complet de votre fichier `.pub` dans **Clé publique**.
  </Step>

  <Step title="Enregistrez">
    Confirmez. La clé apparaît dans la liste avec son empreinte, son type et sa date d'ajout.
  </Step>
</Steps>

<Note>
  Les clés SSH appartiennent à un projet. Une clé ajoutée dans un projet n'est pas disponible dans un autre — ajoutez-la de nouveau là où vous en avez besoin.
</Note>

## Utiliser une clé sur une instance

Une clé enregistrée peut être sélectionnée à la [création d'une instance](/fr/vps/getting-started-with-your-vps) ou lors d'une réinstallation. Elle est installée pour le compte d'administration par défaut, et vous pouvez vous connecter immédiatement :

```bash theme={null}
# Remplacez par l'adresse IP de votre instance
ssh root@203.0.113.10
```

Si votre clé n'est pas au chemin par défaut, indiquez-la explicitement :

```bash theme={null}
ssh -i ~/.ssh/mon_autre_cle root@203.0.113.10
```

<Warning>
  Ajouter une clé dans la console ne l'installe pas sur les instances déjà existantes. Pour une instance en fonctionnement, ajoutez la clé publique à `~/.ssh/authorized_keys` sur le serveur, ou sélectionnez la clé lors d'une réinstallation.
</Warning>

Pour ajouter vous-même une clé sur un serveur en fonctionnement :

```bash theme={null}
# Depuis votre machine, via un accès existant
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@203.0.113.10
```

## Supprimer une clé

Supprimer une clé de la console la retire de la liste utilisée pour les nouvelles instances et les réinstallations. Cela ne la retire **pas** des serveurs où elle est déjà installée : pour cela, modifiez `~/.ssh/authorized_keys` sur chaque instance concernée.

```bash theme={null}
# Sur l'instance, vérifier quelles clés sont autorisées
cat ~/.ssh/authorized_keys
```

## Dépannage

<AccordionGroup>
  <Accordion title="Permission denied (publickey)">
    Le serveur n'a aucune clé publique correspondante. Vérifiez que la clé a bien été sélectionnée à la création de l'instance, et que vous vous connectez avec le bon utilisateur. Ajoutez `-v` à la commande ssh pour voir quelles clés votre client a réellement proposées.
  </Accordion>

  <Accordion title="La console refuse la clé">
    Le contenu collé n'est pas une clé publique valide. Elle doit tenir sur une ligne et commencer par `ssh-ed25519`, `ssh-rsa` ou un type équivalent. Les retours à la ligne introduits par un éditeur de texte sont une cause fréquente.
  </Accordion>

  <Accordion title="Mauvaises permissions sur la clé privée">
    SSH refuse une clé privée lisible par d'autres. Corrigez avec `chmod 600 ~/.ssh/id_ed25519` et `chmod 700 ~/.ssh`.
  </Accordion>

  <Accordion title="La phrase de passe est demandée à chaque connexion">
    C'est le rôle de l'agent. Exécutez `ssh-add ~/.ssh/id_ed25519` une fois par session ; sur macOS, `ssh-add --apple-use-keychain` la rend persistante.
  </Accordion>

  <Accordion title="Vous avez perdu la clé privée">
    Elle est irrécupérable — c'est précisément son intérêt. Générez une nouvelle paire, ajoutez la nouvelle clé publique, et installez-la via une session [console KVM](/fr/vps/kvm-console) ou une réinstallation.
  </Accordion>
</AccordionGroup>

<Tip>
  Une fois l'accès par clé fonctionnel, désactivez l'authentification par mot de passe sur le serveur. Cela supprime entièrement les tentatives de force brute contre SSH, c'est-à-dire l'essentiel du bruit dans le journal d'authentification.
</Tip>
