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

# SSH

> Apprenez à configurer et utiliser SSH pour connecter votre environnement de développement local aux applications Replit pour un accès distant sécurisé et la synchronisation des fichiers.

## Qu'est-ce que SSH ?

SSH, qui signifie Secure Shell, est un protocole sécurisé qui facilite l'accès distant à l'interface en ligne de commande de votre application Replit. Avec SSH, vous pouvez transférer des fichiers de façon transparente et utiliser votre environnement de développement intégré (IDE) local préféré pour modifier du code sur Replit, améliorant la collaboration et la productivité dans votre flux de développement.

La fonctionnalité SSH est disponible pour les plans Core, Pro et tous les autres plans payants.

Voici un aperçu du processus :

* Générer une paire de clés SSH sur votre machine locale
* Ajouter cette clé SSH au panneau **SSH** dans toute application Replit
* Se connecter via un client SSH ou un éditeur pouvant fonctionner via SSH (comme [VSCode](https://code.visualstudio.com/) ou [Cursor](https://www.cursor.com/))

<Note>
  Les clés SSH sont associées à votre compte, pas à une application Replit particulière. Cela signifie que vous n'avez besoin d'ajouter une clé publique qu'une seule fois, après quoi vous pouvez vous connecter à toute application Replit à laquelle vous avez accès.
</Note>

## Pourquoi utiliser SSH ?

* **Mises à jour automatiques entre l'application Replit et l'éditeur** : Toute modification apportée dans l'application Replit est immédiatement reflétée dans votre éditeur, et toute modification dans l'éditeur est mise à jour dans l'application Replit. Cette synchronisation transparente garantit que votre base de code est toujours à jour sur toutes les plateformes.

* **Synchronisation de la gestion des fichiers** : Que vous ajoutiez, supprimiez ou mettiez à jour des fichiers, ces modifications sont synchronisées en temps réel entre votre éditeur et l'application Replit. Cette fonctionnalité garantit que la structure de votre projet reste cohérente, quelle que soit l'origine des modifications.

* **Gestion des dossiers et déplacement de fichiers** : Le déplacement de fichiers entre dossiers est également synchronisé entre vos éditeurs et l'application Replit. Cela garantit que les changements organisationnels effectués dans un environnement sont reflétés avec précision dans l'autre, maintenant l'intégrité et la structure de votre projet.

## Trouver ou créer une paire de clés

Pour configurer SSH pour votre compte, vous aurez besoin de votre clé publique SSH.

### Vérifier si vous avez déjà une paire de clés

Vous pouvez vérifier si vous avez déjà une clé publique en exécutant la commande suivante dans un Terminal sur votre ordinateur local :

<Tabs>
  <Tab title="Mac/Linux">
    ```sh theme={null}
    ls -l ~/.ssh
    ```
  </Tab>

  <Tab title="Windows">
    ```sh theme={null}
    dir %HOMEPATH%\.ssh
    ```
  </Tab>
</Tabs>

Si vous obtenez une erreur, c'est normal, passez à [Générer une nouvelle paire de clés](#generating-a-new-keypair).
Si vous voyez un fichier appelé `replit.pub`, passez à [Obtenir le contenu de votre clé publique](#get-the-contents-of-your-public-key).

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

Sur votre machine, ouvrez une fenêtre Terminal (ou Invite de commandes) et collez la commande suivante :

<Tabs>
  <Tab title="Mac/Linux">
    ```bash theme={null}
    ssh-keygen -t ed25519 -f ~/.ssh/replit -q -N ""
    ```
  </Tab>

  <Tab title="Windows">
    ```sh theme={null}
    ssh-keygen -t ed25519 -f %HOMEPATH%\.ssh\replit -q -N ""
    ```
  </Tab>
</Tabs>

Cette commande vérifie si un fichier de clé publique SSH spécifique existe déjà. Sinon, elle crée une nouvelle clé SSH avec des paramètres raisonnables.

### Obtenir le contenu de votre clé publique

Une fois que vous avez confirmé avoir une paire de clés ou en avoir créé une, affichez le contenu de la clé publique (l'un des deux fichiers portant des noms similaires, avec le suffixe `.pub`), car nous en aurons besoin plus tard.

<Tabs>
  <Tab title="Mac/Linux">
    ```sh theme={null}
    cat ~/.ssh/replit.pub
    ```
  </Tab>

  <Tab title="Windows">
    ```sh theme={null}
    notepad %HOMEPATH%\.ssh\replit.pub
    ```
  </Tab>
</Tabs>

Sauvegardez le contenu de `replit.pub` pour l'utiliser plus tard dans cet article et passez à [ajouter la clé SSH à votre compte](#add-the-ssh-key-to-your-account).

## Ajouter la clé SSH à votre compte

### Ajouter la clé publique directement dans une application Replit, via le panneau SSH

1. Dans votre application Replit sur n'importe quelle fenêtre, sélectionnez le bouton **+**, puis recherchez **SSH**.

<Frame>
  <img src="https://mintcdn.com/replit/0UCOQvZyQpUEM03B/images/ssh-vscode/ssh-tool.png?fit=max&auto=format&n=0UCOQvZyQpUEM03B&q=85&s=6289b307a234f6f12066cc40ea67e9a8" alt="Bouton de l'outil SSH dans l'interface Replit" width="846" height="328" data-path="images/ssh-vscode/ssh-tool.png" />
</Frame>

2. Accédez à l'onglet **Clés** et sélectionnez **Nouvelle clé SSH**.
3. Dans la fenêtre popup, entrez un **Libellé** pour votre clé (par ex. ma-clé-ssh) et collez la clé publique que vous avez copiée dans la section **Clé**.
   Sélectionnez le bouton **Ajouter la clé SSH**. Votre clé a été ajoutée et autorisée.

<Frame>
  <img src="https://mintcdn.com/replit/0UCOQvZyQpUEM03B/images/ssh-vscode/add-ssh-key-with-values.png?fit=max&auto=format&n=0UCOQvZyQpUEM03B&q=85&s=45467b138e8bb5b4c73c7d747446c46e" alt="Boîte de dialogue d'ajout de clé SSH avec les champs libellé et clé remplis" width="500" height="511" data-path="images/ssh-vscode/add-ssh-key-with-values.png" />
</Frame>

### Ajouter la clé publique directement dans les Paramètres

Vous pouvez également ajouter une clé SSH en ouvrant les **Paramètres** et, sous **Compte**, en sélectionnant **Avancé** (ou l'option **Clés SSH**). Sélectionnez **Ajouter une clé SSH** et collez le contenu de `replit.pub` de la section précédente, [Trouver ou créer une paire de clés](#find-or-create-a-keypair).

<Note>
  Lorsque vous avez plusieurs clés publiques sur votre machine, il est important de vous assurer que vous utilisez la bonne combinaison de clés privées et publiques pour votre configuration SSH.
</Note>

## Se connecter à votre application Replit

### Configurer votre config SSH

1. Dans un terminal, assurez-vous que le répertoire `~/.ssh` et le fichier `~/.ssh/config` existent :

<Tabs>
  <Tab title="Mac/Linux">
    ```sh theme={null}
    mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/config && chmod 600 ~/.ssh/config
    open -a 'TextEdit' ~/.ssh/config || nano ~/.ssh/config
    ```
  </Tab>

  <Tab title="Windows">
    ```sh theme={null}
    if not exist %HOMEPATH%\.ssh mkdir %HOMEPATH%\.ssh && type \NUL > %HOMEPATH%\.ssh\config
    notepad %HOMEPATH%\.ssh\config
    ```
  </Tab>
</Tabs>

2. Ajoutez un bloc de configuration pour utiliser la paire de clés `replit` pour tous les domaines \*.replit.dev :

<Tabs>
  <Tab title="Mac/Linux/Windows">
    ```
    Host *.replit.dev
        Port 22
        IdentityFile ~/.ssh/replit
        StrictHostKeyChecking accept-new
    ```
  </Tab>
</Tabs>

### Se connecter depuis VSCode ou Cursor

1. Depuis une application Replit, ouvrez le panneau **SSH**

2. Dans le panneau SSH, accédez à l'onglet **Connexion** et sélectionnez **Lancer VS Code**.

<Tabs>
  <Tab title="Se connecter avec VSCode">
    <img src="https://mintcdn.com/replit/0UCOQvZyQpUEM03B/images/ssh-vscode/ssh-connect.png?fit=max&auto=format&n=0UCOQvZyQpUEM03B&q=85&s=d7c538b8cf6e63db7264ff194dd583be" alt="Onglet de connexion SSH montrant l'option Lancer VS Code" width="788" height="482" data-path="images/ssh-vscode/ssh-connect.png" />
  </Tab>
</Tabs>

3. Si vous êtes invité à remplir `~/.ssh/config`, entrez ce qui suit :

   ```
   Host *.replit.dev
       Port 22
       IdentityFile ~/.ssh/replit
       StrictHostKeyChecking accept-new
   ```

   <Note>
     L'ajout de la configuration SSH n'est demandé que la première fois que vous essayez de vous connecter à VS Code ou à un autre éditeur. Pour revenir au fichier de configuration, vous devrez sélectionner **Configurer les hôtes SSH...**.
   </Note>

4. Si vous êtes invité par un avertissement d'application externe, sélectionnez **Oui** pour confirmer que vous souhaitez ouvrir votre projet dans votre éditeur préféré ou VS Code.

5. Vous pourriez être invité à installer ou mettre à jour des extensions SSH périodiquement. Replit s'efforcera d'être compatible avec les dernières versions de ces IDE, et vous pourriez également recevoir des mises à jour de sécurité importantes.

### Se connecter manuellement

En bas de l'onglet « Connexion » du panneau **SSH**, vous trouverez « Se connecter manuellement ».

Copiez cette commande, collez-la dans un Terminal local (Mac ou Linux) ou une Invite de commandes locale (Windows) pour vous connecter directement.

C'est également un bon moyen de déboguer les problèmes de connexion avec les IDE, ainsi que de collecter des informations de connexion « détaillées » précieuses lors du signalement de bugs au support Replit.

**Une erreur indiquant que nous essayons de nous connecter avec une clé privée inexistante** :

```
$ ssh -i ~/.ssh/replit -p 22 c96b6ade-d5e4-4f7a-bc5b-52334509b2a3@c96b6ade-d5e4-4f7a-bc5b-52334509b2a3-00-16nh2hskw3ql8.riker.replit.dev
Warning: Identity file /Users/user/.ssh/replit not accessible: No such file or directory.
```

**Journaux de débogage complets d'une tentative de connexion SSH, à inclure dans un rapport de bug** :

```
$ ssh -vvv -i ~/.ssh/replit -p 22 c96b6ade-d5e4-4f7a-bc5b-52334509b2a3@c96b6ade-d5e4-4f7a-bc5b-52334509b2a3-00-16nh2hskw3ql8.riker.replit.dev
OpenSSH_9.6p1, LibreSSL 3.3.6
debug1: Reading configuration data /Users/.../.ssh/config
debug1: /Users/.../.ssh/config line 1: Applying options for *
debug1: /Users/.../.ssh/config line 4: Applying options for *.replit.dev
debug3: channel_clear_timeouts: clearing
debug1: Connecting to c96b6ade-d5e4-4f7a-bc5b-52334509b2a3-00-16nh2hskw3ql8.riker.replit.dev port 22.
debug1: Connection established.
debug1: identity file /Users/dstewart/.ssh/replit type 3
debug1: Local version string SSH-2.0-OpenSSH_9.6
debug1: Remote protocol version 2.0, remote software version Replit-SSH-Proxy
debug1: compat_banner: no match: Replit-SSH-Proxy
debug3: fd 5 is O_NONBLOCK
...
Welcome to the Replit SSH Proxy.

Visit https:/.replit.com/replit-workspace/ssh to learn more about SSH on Replit.
debug3: receive packet: type 51
debug1: Authentications that can continue: password,publickey
debug3: start over, passed a different list password,publickey
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
...
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
```

### Se connecter via un outil non listé ici

Il existe de nombreux clients SSH disponibles pour différentes plateformes et systèmes d'exploitation, offrant souvent différentes fonctionnalités ou intégrations.

Vous pouvez toujours décomposer la commande affichée dans « Se connecter manuellement » en ses composants constitutifs pour déterminer comment configurer chaque client :

```sh theme={null}
ssh -i ~/.ssh/replit -p 22  c96b6ade-d5e4-4f7a-bc5b-52334509b2a3@c96b6ade-d5e4-4f7a-bc5b-52334509b2a3-00-16nh2hskw3ql8.riker.replit.dev
       ^-----v-----^    ^^  ^-----------------v----------------^ ^------------------------------v-------------------------------------^
        Clé privée   Port                   Utilisateur          @                           Nom d'hôte
```

**Nom d'hôte** : `<votre_nom_hôte>.<cluster>.replit.dev`
**Port** : `<numéro_de_port>`
**Utilisateur** : `Nom d'utilisateur`
**Clé privée** : Chemin vers le fichier de clé privée sur votre ordinateur. Généralement à côté de `replit.pub`.
