Passer au contenu principal

Qu’est-ce que SSH ?

SSH, qui signifie Secure Shell (shell sécurisé), est un protocole sécurisé qui facilite l’accès distant à l’interface en ligne de commande de votre Replit App. Avec SSH, vous pouvez transférer des fichiers de manière transparente et utiliser votre environnement de développement intégré (IDE) local préféré pour modifier du code sur Replit, améliorant ainsi la collaboration et la productivité dans votre flux de travail 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 dans le panneau SSH de n’importe quelle Replit App
  • Se connecter à l’aide d’un client SSH ou d’un éditeur compatible SSH (comme VSCode ou Cursor)
Les clés SSH sont associées à votre compte, pas à une Replit App 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 à n’importe quelle Replit App à laquelle vous avez accès.

Pourquoi utiliser SSH ?

  • Mises à jour automatiques entre la Replit App et l’éditeur : Toutes les modifications apportées dans la Replit App sont répercutées instantanément dans votre éditeur, et toutes les modifications dans l’éditeur sont mises à jour dans la Replit App. 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 la Replit App. Cette fonctionnalité garantit que la structure de votre projet reste cohérente, quelle que soit la source des modifications.
  • Gestion des dossiers et déplacement des fichiers : Le déplacement de fichiers entre dossiers est également synchronisé entre vos éditeurs et la Replit App. Cela garantit que les modifications organisationnelles effectuées dans un environnement sont fidèlement reflétées 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 :
ls -l ~/.ssh
Si vous obtenez une erreur, c’est normal. Passez à Générer une nouvelle paire de clés. Si vous voyez un fichier appelé replit.pub, passez à Obtenir le contenu de votre clé publique.

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

Sur votre machine, ouvrez une fenêtre de Terminal (ou d’invite de commande) et collez la commande suivante :
ssh-keygen -t ed25519 -f ~/.ssh/replit -q -N ""
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 sensibles.

Obtenir le contenu de votre clé publique

Une fois que vous avez confirmé que vous avez une paire de clés ou que vous en avez créé une, affichez le contenu de la clé publique (l’un des deux fichiers similaires avec le suffixe .pub), car nous en aurons besoin plus tard.
cat ~/.ssh/replit.pub
Sauvegardez le contenu de replit.pub pour l’utiliser plus tard dans cet article et passez à ajouter la clé SSH à votre compte.

Ajouter la clé SSH à votre compte

Ajouter la clé publique directement dans une Replit App via le panneau SSH

  1. Dans votre Replit App, dans n’importe quelle fenêtre, sélectionnez le bouton +, puis recherchez SSH.
Bouton de l'outil SSH dans l'interface Replit
  1. Accédez à l’onglet Clés et sélectionnez Nouvelle clé SSH.
  2. Dans la fenêtre contextuelle, entrez un Libellé pour votre clé (par exemple, ma-cle-ssh) et collez la clé publique copiée dans la section Clé. Sélectionnez le bouton Ajouter une clé SSH. Votre clé a été ajoutée et autorisée.
Boîte de dialogue d'ajout de clé SSH avec les champs libellé et clé remplis

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.
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ée et publique pour votre configuration SSH.

Se connecter à votre Replit App

Configurer votre configuration SSH

  1. Dans un terminal, assurez-vous que le répertoire ~/.ssh et le fichier ~/.ssh/config existent :
mkdir -p ~/.ssh && chmod 700 ~/.ssh && touch ~/.ssh/config && chmod 600 ~/.ssh/config
open -a 'TextEdit' ~/.ssh/config || nano ~/.ssh/config
  1. Ajoutez un bloc de configuration pour utiliser la paire de clés replit pour tous les domaines *.replit.dev :
Host *.replit.dev
    Port 22
    IdentityFile ~/.ssh/replit
    StrictHostKeyChecking accept-new

Se connecter depuis VSCode ou Cursor

  1. Depuis une Replit App, ouvrez le panneau SSH
  2. Dans le panneau SSH, accédez à l’onglet Connexion et sélectionnez Lancer VS Code.
Onglet de connexion SSH affichant l'option Lancer VS Code
  1. Si vous êtes invité à remplir ~/.ssh/config, entrez ce qui suit :
    Host *.replit.dev
        Port 22
        IdentityFile ~/.ssh/replit
        StrictHostKeyChecking accept-new
    
    L’ajout d’une 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….
  2. Si une application externe vous avertit, sélectionnez Oui pour confirmer que vous souhaitez ouvrir votre projet dans votre éditeur préféré ou VS Code.
  3. Vous pourrez ê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 pourrez également recevoir des mises à jour de sécurité importantes.

Se connecter manuellement

Au bas de l’onglet « Connexion » du panneau SSH, vous trouverez « Se connecter manuellement ». Copiez cette commande et collez-la dans un Terminal local (Mac ou Linux) ou une invite de commande 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 recueillir des informations de connexion « verboses » précieuses lors du signalement de bogues 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 bogue :
$ 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 répertorié ici

Il existe de nombreux clients SSH disponibles pour différentes plateformes et systèmes d’exploitation, proposant souvent différentes fonctionnalités ou intégrations. Vous pouvez toujours décomposer la commande affichée dans « Se connecter manuellement » en ses composants pour déterminer comment configurer chaque client :
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_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.