# Se connecter en SSH

Votre VPS Pro s'ouvre avec votre **clé SSH** : une paire de fichiers créée sur votre ordinateur, dont vous déposez la partie **publique** dans votre espace client. La partie **privée** reste sur votre ordinateur et ne se transmet à personne, notre équipe comprise.

## Créer votre clé

Sur macOS, Linux et Windows 10 ou 11 (PowerShell ou le Terminal), une seule commande :

```
ssh-keygen -t ed25519
```

Acceptez l'emplacement proposé, et choisissez une phrase de passe pour protéger la clé. Deux fichiers apparaissent dans le dossier `.ssh` de votre compte :

* `id_ed25519` : votre clé **privée**, qui reste chez vous ;
* `id_ed25519.pub` : votre clé **publique**, celle que vous déposez. Elle tient sur une ligne qui commence par `ssh-ed25519`.

Pour afficher la clé publique et la copier :

```
cat ~/.ssh/id_ed25519.pub
```

## Déposer votre clé dans l'espace client

1. Ouvrez [my.simafri.com](https://my.simafri.com/), rubrique **VPS**.
2. Dans la carte de votre serveur, collez votre clé publique dans **Vos clés publiques, une par ligne**.
3. Cliquez sur **Enregistrer les clés**.

Votre clé est posée sur le serveur dans la minute, et la carte l'indique : **Clés posées sur le serveur le** suivi de la date, avec l'empreinte de chaque clé (`SHA256:...`, la même que celle qu'affiche `ssh-keygen -lf ~/.ssh/id_ed25519.pub`). Déposée pendant la préparation du serveur, la clé est posée à sa création.

Bon à savoir :

* jusqu'à **10 clés** par serveur, une par personne ou par ordinateur ;
* types acceptés : **ed25519**, **RSA** de 2048 bits au moins, **ECDSA**, et les clés de sécurité matérielles (`sk-ssh-ed25519`, `sk-ecdsa`) ; le format PuTTYgen est accepté aussi ;
* chaque enregistrement **remplace** l'ensemble des clés déposées : collez toutes celles à garder ;
* le propriétaire du compte et les **gestionnaires** déposent les clés ; un **opérateur** les consulte (voir [Membres et rôles](https://docs.simafri.com/fr/espace-client/membres-et-roles/)).

Les clés déposées depuis l'espace client occupent leur propre bloc du fichier `/root/.ssh/authorized_keys`, entre deux lignes de repère `my.simafri.com`. Le reste du fichier vous appartient : une clé que vous y ajoutez vous-même, hors de ce bloc, reste en place.

## Se connecter

La carte de votre serveur affiche la commande **Connexion SSH**, prête à copier :

```
ssh -p 22101 root@203.0.113.10
```

Le port, entre 22100 et 22999, est propre à votre serveur : reprenez celui de votre carte. Le nom de votre serveur fonctionne aussi à la place de l'adresse :

```
ssh -p 22101 root@app.mon-entreprise.com
```

Pour un serveur dont le nom est sous votre propre domaine, ce nom répond dès que votre enregistrement DNS désigne votre serveur (voir [Mettre en ligne un site ou une application](/fr/vps-pro/mettre-en-ligne.md)).

### En IPv6

Si votre connexion Internet a l'IPv6, vous joignez aussi votre serveur directement par son adresse IPv6, affichée dans la carte, sur le port SSH habituel :

```
ssh root@2001:db8::101
```

### Un raccourci : le fichier \~/.ssh/config

Pour ne plus retaper le port et l'adresse, ajoutez un bloc à votre fichier `~/.ssh/config` :

```
Host monvps

    HostName app.mon-entreprise.com

    Port 22101

    User root

    IdentityFile ~/.ssh/id_ed25519
```

Ensuite, `ssh monvps` suffit, et le même raccourci sert à `scp`, `rsync`, `git` et votre éditeur.

## Depuis Windows

Windows 10 et 11 comprennent le client OpenSSH : ouvrez PowerShell ou le Terminal et collez la commande de votre carte. Votre fichier de raccourcis se trouve dans `C:\Users\<votre nom>\.ssh\config`.

Avec **PuTTY**, renseignez l'adresse et le port de votre carte dans **Session**, l'utilisateur `root` dans **Connection > Data**, et votre clé privée au format `.ppk` dans **Connection > SSH > Auth > Credentials**. La clé publique affichée par PuTTYgen se dépose telle quelle dans votre espace client.

## Transférer des fichiers

Avec le même port et la même clé :

```
# un fichier, vers le serveur

scp -P 22101 archive.tar.gz root@app.mon-entreprise.com:/srv/



# un dossier, synchronisé

rsync -avz -e "ssh -p 22101" ./build/ root@app.mon-entreprise.com:/var/www/app/
```

`scp` prend le port avec un **P majuscule**. Les logiciels SFTP comme FileZilla ou WinSCP se connectent en **SFTP**, avec l'adresse, le port et la clé privée de votre ordinateur.

## Travailler depuis votre éditeur

L'extension **Remote - SSH** de Visual Studio Code ouvre les dossiers de votre serveur comme s'ils étaient sur votre ordinateur : elle lit votre fichier `~/.ssh/config`, il suffit de choisir `monvps`. Les éditeurs JetBrains proposent la même connexion par **Remote Development**.

## Donner un accès à un collègue

Deux façons de faire, selon ce que vous voulez lui confier :

* **un accès administrateur** : ajoutez sa clé publique à côté de la vôtre dans **Vos clés publiques, une par ligne**, puis **Enregistrer les clés** ;
* **un accès limité** : créez-lui un compte sur le serveur, avec sa propre clé :

```
adduser camille

mkdir -p /home/camille/.ssh

nano /home/camille/.ssh/authorized_keys   # collez sa clé publique

chown -R camille:camille /home/camille/.ssh

chmod 700 /home/camille/.ssh && chmod 600 /home/camille/.ssh/authorized_keys
```

Pour retirer un accès, enregistrez la liste des clés sans la sienne, ou supprimez son compte avec `deluser camille`.

## Remplacer une clé perdue

Votre ordinateur a changé ou votre clé privée a disparu : créez une nouvelle clé avec `ssh-keygen -t ed25519`, puis déposez la nouvelle clé publique dans votre carte, en retirant l'ancienne. Elle est posée dans la minute, et vous retrouvez l'accès à votre serveur.

## Votre assistant IA

Un assistant IA branché sur votre espace client Simafri (serveur MCP `https://mcp.simafri.com/v1/mcp`) lit vos serveurs, leur état, leurs adresses et leur commande de connexion, et dépose vos clés **publiques** pour vous, avec les droits de la personne connectée. Une clé privée y est refusée, comme dans l'espace client.

## Questions fréquentes

### « Permission denied (publickey) » : que vérifier ?

1. La carte de votre serveur indique **Clés posées sur le serveur le** suivi d'une date.
2. L'empreinte affichée dans la carte est celle de votre clé : `ssh-keygen -lf ~/.ssh/id_ed25519.pub`.
3. Votre commande désigne bien le port de votre carte, et l'utilisateur `root`.
4. Si votre clé porte un autre nom, indiquez-la : `ssh -i ~/.ssh/ma_cle -p 22101 root@...`.

Décrivez ensuite la situation au support, avec la commande lancée et le message obtenu : l'Assistance intégrale vous aide à rétablir l'accès.

### Ma connexion se coupe quand je reste inactif.

Ajoutez `ServerAliveInterval 60` à votre bloc dans `~/.ssh/config` : votre ordinateur entretient la connexion. Pour une commande longue, lancez-la dans `tmux` ou `screen`, qui la gardent en vie même déconnecté.

### L'espace client indique « Ce texte contient une clé PRIVÉE ».

Vous avez collé le fichier sans `.pub`. Collez le contenu du fichier qui se termine par `.pub`. Si votre clé privée a été envoyée par erreur à quelqu'un, créez-en une nouvelle et déposez sa clé publique.

### Puis-je me connecter avec un mot de passe ?

Votre serveur s'ouvre par clé SSH, la méthode la plus sûre : une clé ne se devine pas et ne circule jamais. Déposez une clé par personne, et chacune garde son accès propre.
