Se connecter à Databricks à l’aide d’un tunnel SSH

Important

Cette fonctionnalité est en version bêta.

Le coût et la tarification des fonctionnalités en version bêta peuvent évoluer.

Le tunnel Azure Databricks SSH (Secure Shell) connecte Visual Studio Code, Cursor ou votre terminal à l’espace de travail Azure Databricks et à la capacité de calcul serverless Azure Databricks, AI Runtime ou la capacité de calcul classique. Utilisez-le pour éditer des fichiers de l’espace de travail et exécuter ou déboguer des scripts et notebooks Python, avec votre environnement Python et l’exécution du code sur la ressource de calcul distante. Connectez-vous directement au calcul serverless, ou configurez une connexion SSH réutilisable vers un cluster classique dédié.

Spécifications

Lancez la connexion SSH depuis votre machine locale. Le tunnel ne peut pas être lancé depuis un autre environnement distant ni depuis un conteneur Docker.

Pour se connecter à un compute serverless ou classique, vous devez avoir :

  • Databricks CLI version 1.5.0 ou ultérieure installée sur votre ordinateur local et l’authentification configurée. Vérifiez votre version installée avec databricks --version. Consultez Installer ou mettre à jour l’interface CLI Databricks.
  • L'un des suivants :
    • Visual Studio Code version 1.110.0 (Universal) ou supérieure et l’extension Remote - SSH (1.0.46+) installée.
    • Cursor version 2.6.11 (Universal) ou supérieure.

Pour vous connecter au calcul GPU serverless, la fonctionnalité AI Runtime doit être activée. Voir AI Runtime.

Exigences supplémentaires pour la capacité de calcul classique

Pour vous connecter au calcul classique (dédié, mono-utilisateur) :

Choisissez une connexion SSH

Utilisez la méthode de connexion pour votre type de capacité de calcul :

Compute Méthode de connexion Configuration requise
Informatique sans serveur databricks ssh connect Pas d’étape de configuration SSH séparée.
Ajouter --ide vscode ou --ide cursor pour lancer un IDE.
Environnement d'exécution IA databricks ssh connect --accelerator <accelerator> Pas d’étape de configuration SSH séparée.
Ajouter --ide vscode ou --ide cursor pour lancer un IDE.
Pour les accélérateurs pris en charge, voir --accelerator.
Calcul dédié classique, mono-utilisateur Exécutez databricks ssh setup --name <connection-name> dans votre terminal.
Ensuite, lance la session SSH depuis l’IDE ou exécute ssh <connection-name>.
Sélectionnez un cluster dédié, utilisateur unique, qui répond aux exigences classiques de calcul.
Les clusters partagés ne sont pas pris en charge.

Le tunnel SSH et l’extension IDE Databricks ne sont pas compatibles et ne doivent pas être utilisés ensemble. Pour une comparaison avec Databricks Connect et d’autres options de développement, voir Connect depuis votre IDE.

Se connecter à un calcul serverless

Une fois les exigences respectées ci-dessus, lancez databricks ssh connect depuis votre terminal ou IDE.

La --ide valeur sélectionne l’éditeur à lancer, peu importe l’éditeur ou le terminal depuis lequel vous exécutez la commande.

Visual Studio Code

databricks ssh connect --ide vscode

La CLI ouvre une fenêtre Visual Studio Code connectée au calcul distant.

Cursor

databricks ssh connect --ide cursor

La CLI ouvre une fenêtre Cursor connectée à l’environnement de calcul distant.

Terminal

databricks ssh connect

Le CLI lance une session interactive SSH.

Pour les options de commande, y compris les connexions nommées et les profils d’authentification, voir databricks ssh connect.

Après la connexion, ouvrez votre projet d’espace de travail et sélectionnez l’environnement Python. Si la connexion échoue, voir Dépannage des connexions tunnel SSH.

Connectez-vous au calcul GPU serverless avec AI Runtime

Avec l’exécution IA activée, ajoutez --accelerator pour utiliser le calcul GPU :

databricks ssh connect --accelerator GPU_1xA10

databricks ssh connect vous permet d’avoir une session interactive sur un seul nœud. Pour les tâches d’entraînement de longue durée ou l’entraînement distribué sur plusieurs nœuds, soumettez plutôt la charge de travail avec databricks air. Voir Utiliser l’interface de ligne de commande Databricks avec AI Runtime.

Se connecter au calcul classique

Pour une connexion réutilisable vers un cluster dédié classique, configurez un nom d’hôte SSH, puis sélectionnez cet hôte dans votre IDE ou connectez-vous depuis un terminal.

Configurer la connexion SSH

Note

La configuration de la connexion SSH est requise uniquement si vous vous connectez à un calcul classique.

Lance databricks ssh setup sur ta machine locale. Remplacez <connection-name> par un nom pour cette connexion, tel que my-connection :

databricks ssh setup --name <connection-name>

La CLI vous invite à sélectionner un cluster et ajoute une entrée hôte à votre configuration SSH. Vous pouvez aussi sélectionner directement un cluster. Remplacez <cluster-id> par l’identifiant de votre cluster dédié :

databricks ssh setup --name <connection-name> --cluster <cluster-id>

Pour configurer combien de temps le tunnel SSH attend après la déconnexion du dernier client, ajoutez --shutdown-delay à la commande de configuration. La valeur par défaut est 10 minutes. Par exemple, pour définir un délai de 30 minutes pour les connexions via cette entrée SSH hôte :

databricks ssh setup --name <connection-name> --cluster <cluster-id> --shutdown-delay 30m

Note

Pour les utilisateurs IntelliJ, Databricks recommande d’ajouter --auto-start-cluster=false à la commande d’installation et de démarrer le cluster manuellement avant de se connecter. Cela est dû au fait que les ID JetBrains démarrent tous les clusters configurés lors du lancement, ce qui peut entraîner des frais de calcul inattendus.

Se connecter à l’aide de Visual Studio Code ou du curseur

  1. Pour Visual Studio Code, installez l’extension SSH distante. Le curseur inclut une extension SSH distante par défaut.

  2. Dans le menu principal de l’IDE, cliquez sur Afficher> lapalette de commandes. Sélectionnez Remote-SSH : Paramètres. Vous pouvez également sélectionner Préférences : Ouvrir les paramètres utilisateur (JSON) pour modifier settings.json directement.

  3. Sous Remote.SSH : Extensions par défaut (ou remote.SSH.defaultExtensions in settings.json), ajouter ms-Python.Python et ms-toolsai.jupyter.

    Si vous modifiez settings.json:

    "remote.SSH.defaultExtensions": [
        "ms-Python.Python",
        "ms-toolsai.jupyter"
    ]
    

    Note

    Si vous le souhaitez, augmentez la valeur de Remote.SSH : Délai d’expiration de connexion (ou remote.SSH.connectTimeout in settings.json) pour réduire davantage le risque d’erreurs de délai d’expiration. Le délai d’expiration par défaut est 360.

  4. Dans la palette de commandes, sélectionnez Remote-SSH : Se connecter à l’hôte.

  5. Dans le menu déroulant, sélectionnez la connexion que vous avez configurée à la première étape. L’IDE continue de se connecter dans une nouvelle fenêtre.

Se connecter à l’aide d’IDE IntelliJ

  1. Suivez le Didacticiel sur le serveur distant pour obtenir la configuration requise.
  2. Dans le nouvel écran de connexion, entrez :
    • Nom d’utilisateur : root
    • Hôte : <connection-name>

Se connecter à la capacité de calcul classique depuis un terminal

Utilisez le nom de connexion que vous avez configuré avec databricks ssh setup:

ssh <connection-name>

Pour une connexion directe sans entrée d’hôte SSH réutilisable, vous pouvez aussi utiliser la CLI. Remplacez <cluster-id> par votre identifiant de cluster dédié :

databricks ssh connect --cluster <cluster-id>

Voir Databricks ssh connect.

Ouvrir des projets d’espace de travail via SSH

Par défaut, la databricks ssh connect commande s’ouvre sur un répertoire éphémère. Pour accéder aux fichiers de l’espace de travail, accédez à votre répertoire d’espace de travail à partir de l’IDE ou du terminal :

  • Dans Visual Studio Code ou curseur, dans la palette de commandes (Cmd/Ctrl+Maj+P), sélectionnez Ouvrir le dossier et accédez à /Workspace/Users/<your-username>.
  • À partir d’une fenêtre de terminal, modifiez votre répertoire : cd /Workspace/Users/<your-username>.

Note

Fichiers dans /Workspace, /Volumes et /dbfs persistent entre les redémarrages du cluster. Les fichiers dans /home, /rootet d’autres chemins locaux sont éphémères et perdus lors du redémarrage.

Exécutez Python et notebooks dans la session SSH

Sélectionnez l’environnement Python fourni par votre session SSH avant d’exécuter du code. Pour la capacité de calcul classique, cet environnement inclut les bibliothèques Databricks Runtime intégrées et les bibliothèques à portée de capacité de calcul.

  1. Ouvrez la palette de commandes (Cmd/Ctrl+Maj+P) et sélectionnez Python : Sélectionner l’interpréteur.

  2. Sélectionnez l’environnement pythonEnv-xxx virtuel dans la liste. Si vous configurez les dépendances Python à l’aide de l’indicateur --base-environment, sélectionnez le nom d’environnement virtuel le plus long dans la liste des options. Si l’environnement virtuel n’apparaît pas :

    1. Exécutez echo $DATABRICKS_VIRTUAL_ENV depuis un terminal intégré dans l'IDE.

      Exemple de sortie : /local_disk0/.ephemeral_nfs/envs/pythonEnv-xxx/bin/python

    2. Collez l’intégralité de la sortie comme chemin de l’interpréteur dans l’invite Python : Sélectionner l’interpréteur.

  3. Ouvrez un nouveau terminal et l’environnement virtuel doit être activé automatiquement.

  4. Pour exécuter un notebook Jupyter, vérifiez que l’environnement virtuel est sélectionné comme noyau. Cliquez sur Sélectionner le noyau en haut à droite du bloc-notes.

Exécutez et déboguez les notebooks .ipynb et les fichiers Python grâce aux extensions Python et Jupyter standard.

Pour utiliser Spark dans un fichier Python sur un environnement de calcul serverless, initialisez explicitement une session :

from databricks.connect import DatabricksSession
spark = DatabricksSession.builder.serverless().profile("DEFAULT").getOrCreate()

Gérer les dépendances pour les sessions SSH

Choisissez la gestion des dépendances pour votre type de calcul :

Pour les paquets non-Python, voir Dépendances non-Python.

Environnements de base de l’espace de travail (recommandés pour serverless et AI Runtime)

Note

Cette fonctionnalité nécessite que la prise en charge de l’environnement de base de l’espace de travail Serverless dans l’aperçu Travaux soit activée. Consultez Gérer les préversions d’Azure Databricks.

Utilisez un environnement de base d’espace de travail avec l’environnement serverless version 4 ou ultérieure pour préconfigurer les dépendances Python. Le tunnel SSH ne prend pas en charge --base-environment avec l’environnement serverless version 5 ou supérieur. Créez un environnement de base à l’aide de l’interface utilisateur de l’espace de travail ou de la commande Databricks CLI databricks create-workspace-base-environment .

Spécifiez l’environnement à l’aide de l’option --base-environment lors de la connexion :

databricks ssh connect --base-environment my-workspace-env

L’option --base-environment accepte un nom d’affichage, un chemin YAML d’espace de travail ou un identifiant de ressource. On ne peut pas le combiner avec --cluster. Voir Databricks ssh connect.

Bibliothèques de cluster (recommandées pour le calcul classique)

Installez des dépendances à l’aide de l’interface utilisateur de l’espace de travail sous Bibliothèques de calcul>. Celles-ci persistent entre les redémarrages de cluster et sont disponibles dans pythonEnv-xxx. Consultez les bibliothèques de cluster.

Dépendances non Python

Pour conserver les dépendances non Python, utilisez un script init qui installe les packages au démarrage du calcul. Si vous le souhaitez, stockez les packages dans un volume de catalogue Unity et référencez-les à partir du script init. Consultez En quoi consistent les scripts d'initialisation ?.

Configuration de cahier spécifique au projet

Pour les dépendances dans l’étendue du projet, exécutez un notebook contenant des commandes %pip install au début de chaque session :

# Install from pyproject.toml
%pip install .

# Install from a requirements file
%pip install -r requirements.txt

# Install a wheel from Volumes or Workspace
%pip install /Volumes/catalog/schema/volume/your_library.whl

%pip les commandes incluent des garde-fous spécifiques à Databricks et propagent des dépendances aux nœuds d’exécuteur Spark. Cela permet d'utiliser des fonctions définies par l’utilisateur (UDF) avec des dépendances personnalisées.

Pour plus d’exemples, consultez Gérer les bibliothèques avec %pip les commandes.

Vous n’avez pas besoin de relancer le notebook de configuration si vous vous reconnectez avant que le tunnel SSH ne se ferme. Par défaut, le tunnel se ferme 10 minutes après la déconnexion du dernier client. Pour modifier ce délai, utilisez --shutdown-delay avec la commande pour votre méthode de connexion :

  • Pour une connexion de capacité de calcul classique réutilisable, réglez le délai avec databricks ssh setup. L’entrée d’hôte SSH générée applique le délai lorsque vous vous connectez depuis votre IDE ou exécutez ssh <connection-name>.
  • Pour une connexion CLI directe, réglez le délai avec Databricks ssh connect.

Note

Plusieurs sessions SSH sur le même cluster partagent un environnement virtuel.

Utilisez Git dans une session SSH

Important

Cette fonctionnalité est disponible en préversion publique. Les administrateurs d’espace de travail peuvent contrôler l’accès à la prise en charge de Git CLI pour les dossiers Git à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.

Vous pouvez utiliser la CLI Git dans le tunnel SSH avec les nouveaux dossiers Git créés et les identifiants Git que vous avez configurés dans l'espace de travail Azure Databricks. Consultez Utiliser des commandes Git CLI.

Si la CLI demande des identifiants au lieu de les capter automatiquement, vous devez connecter votre fournisseur Git à Azure Databricks. Consultez Connecter votre fournisseur Git à Databricks.

Maintenez les processus détachés en fonctionnement

Par défaut, lorsque le tunnel SSH se ferme, il arrête tous les processus que la session a commencés, y compris ceux que vous avez détachés de la session avec tmux, setsid ou nohup. Avant de les arrêter, le tunnel consigne un avertissement contenant leurs ID de processus dans la sortie de l'exécution du travail du tunnel. databricks ssh connect affiche l'ID d'exécution du travail lorsqu'il démarre le tunnel.

Pour garder le travail détaché en cours après la déconnexion, utilisez l’option --keep-detached-processes. Définissez l'indicateur sur la connexion qui démarre le tunnel, avant de lancer les tâches que vous souhaitez conserver. Consultez Connexions à un tunnel existant.

  • Capacité de serverless ou classique : passez l’indicateur à databricks ssh connect.
  • Capacité de calcul classique avec un hôte SSH configuré : passer le drapeau à databricks ssh setup. L’entrée d’hôte SSH générée est appliquée chaque fois que vous vous connectez. Les connexions serverless ne nécessitent pas de configuration, donc cette option ne s’applique qu’au Compute classique.

L’exemple suivant permet aux processus détachés de fonctionner sur l’informatique serverless :

databricks ssh connect --keep-detached-processes

L’exemple suivant permet aux processus détachés de s’exécuter sur un cluster dédié :

databricks ssh connect --cluster 0123-456789-abcdefgh --keep-detached-processes

Lorsque vous utilisez ce drapeau et que le dernier client se déconnecte, le tunnel se comporte comme suit :

  • Après la période --shutdown-delay, le tunnel vérifie la présence de processus détachés. Pendant qu’il y en a en cours d’exécution, le tunnel continue de fonctionner au lieu de s’éteindre.
  • Les processus détachés conservent leur accès à /Workspace et /Volumes.
  • Après la sortie du dernier processus détaché, le tunnel se ferme et l’exécution de sa tâche se termine.

Tant que le tunnel reste actif, vous pouvez vous reconnecter à la même ressource de calcul et vous rattacher aux tâches détachées, par exemple avec tmux attach. Sur le calcul serverless, reconnectez-vous avec le même nom de connexion. Si vous omettez --name, la CLI dérive le nom de la connexion à partir de votre espace de travail et des indicateurs --accelerator et --base-environment, donc changer l’un ou l’autre indicateur déclenche une connexion séparée.

Connexions à un tunnel existant

Le mode du tunnel est fixé au démarrage, et les connexions ultérieures le traitent comme suit :

  • Si vous vous connectez à un tunnel en utilisant cette option alors qu’il a été démarré sans elle, la CLI en démarre un nouveau. Les processus que vous avez détachés dans le tunnel existant ne sont pas conservés, et ils s’arrêtent quand ce tunnel s’arrête. Sur un cluster dédié, le nouveau tunnel arrête immédiatement celui existant, ce qui met fin à ses sessions ouvertes et à ses processus détachés.
  • Si vous vous connectez sans l'indicateur à un tunnel qui a été démarré avec celui-ci, l'interface CLI réutilise ce tunnel, qui reste actif tant que des processus détachés sont en cours d'exécution. Cela s’applique également aux connexions provenant d’autres entrées d’hôte SSH ou de sessions IDE vers la même ressource de calcul.

Coûts et durée de vie maximale

N'oubliez pas les éléments suivants :

  • Pendant que le tunnel continue de tourner, les ressources de calcul continuent d’être en marche et engendrent des coûts. Un cluster classique ne se termine pas automatiquement. Une session idle tmux compte comme un processus détaché en cours, donc fermez-la quand vous n’en aurez plus besoin.
  • L’exécution de la tâche s’arrête toujours lorsqu’elle atteint la durée de vie maximale fixée par --server-timeout, même si des processus détachés sont en cours. Cette durée de vie se calcule à partir du début de l’exécution du travail, et non à partir du moment où le dernier client se déconnecte. Après l’arrêt de l’exécution du travail, les processus détachés perdent leur accès à /Workspace et /Volumes. Sur l’informatique serverless, les processus détachés s’arrêtent. En compute classique, ils peuvent continuer à fonctionner sans cet accès jusqu’à ce que le cluster soit arrêté. Pour conserver la sortie d’un travail détaché de longue durée, sauvegardez-la avec le SDK Azure Databricks ou l’API REST au lieu d’écrire dans les chemins /Workspace ou /Volumes. Consultez Utiliser des fichiers dans les volumes de Unity Catalog.
  • Pour les travaux de longue durée, utilisez plutôt des jobs ou des bundles .

Limitations du tunnel SSH

Le tunnel SSH fourni par Databricks présente les limitations suivantes :

  • Les clusters partagés ne sont pas pris en charge.
  • L’extension IDE Databricks et le tunnel SSH ne sont pas encore compatibles et ne doivent pas être utilisés ensemble.
  • Les fichiers modifiés en dehors /Workspace, /Volumeset /dbfs sont perdus lors du redémarrage du cluster.
  • Au maximum 10 connexions SSH sont autorisées par cluster.
  • Les sessions inactives peuvent expirer après 1 heure.
  • Le tunnel SSH ne peut pas être lancé à partir d’autres environnements distants ou conteneurs Docker.
  • Vous pouvez rencontrer des problèmes de performances ou de connexion lorsque trois notebooks Jupyter ou plus sont ouverts simultanément.

Comportement du notebook dans les sessions SSH

Il existe des différences dans les notebooks lors de l’utilisation du tunnel SSH :

  • Les fichiers Python ne définissent pas de globals Databricks (comme spark ou dbutils). Vous devez les importer explicitement avec from databricks.sdk.runtime import spark.
  • Pour les notebooks ipynb, ces fonctionnalités sont disponibles :
    • Variables globales Databricks : display, displayHTML, dbutils, table, sql, udf, getArgument, sc, sqlContext, spark
    • %sql commande magic pour exécuter des cellules SQL

Pour utiliser la source Python « notebooks » :

  • Recherchez jupyter.interactiveWindow.cellMarker.codeRegex et définissez-le sur :

    ^# COMMAND ----------|^# Databricks notebook source|^(#\\s*%%|#\\s*\\<codecell\\>|#\\s*In\\[\\d*?\\]|#\\s*In\\[ \\])
    
  • Recherchez jupyter.interactiveWindow.cellMarker.default et définissez-le sur :

    # COMMAND ----------
    

Dépannage des connexions tunnel SSH

Commencez par le symptôme correspondant à la panne :

Symptôme Première vérification
La connexion SSH échoue ou dépasse le délai d’attente. Vérifiez l’accès HTTPS et WebSocket de l’espace de travail. Pour le calcul classique, vérifiez aussi l’état du cluster et le délai d’attente de l’IDE. Voir échec de la connexion SSH ou expiration du délai.
Le CLI indique qu’il ne peut pas trouver code. Installez la commande shell de Visual Studio Code dans votre environnement local PATH. Voir codecommande introuvable.
L’authentification CLI échoue. Vérifiez le profil d’interface CLI et, pour la capacité de calcul classique, les autorisations du cluster. Voir erreurs d’authentification CLI.
Le CLI rapporte invalid_grant avec Refresh token is invalid. Reconnectez-vous à l’espace de travail en utilisant le même profil CLI, puis réessayez la connexion. Voir « Le jeton d’actualisation n’est pas valide ».
Le code Python ou les notebooks échouent après la connexion. Vérifiez l’interpréteur ou le noyau de notebook sélectionné. Voir Le code Python ou les notebooks échouent dans la session SSH.
Les fichiers disparaissent après un redémarrage du cluster. Vérifiez si les fichiers étaient stockés sur un chemin local éphémère. Voir Fichiers disparus ou réinitialisation de l’environnement après un redémarrage du cluster.

La connexion SSH échoue ou dépasse le délai d’attente

  • Pour le calcul classique, vérifiez que le cluster fonctionne dans l’interface utilisateur de l’espace de travail.
  • Vérifiez que votre réseau, VPN et pare-feu autorisent le trafic HTTPS et WebSocket vers votre domaine d’espace de travail. Le tunnel SSH n’utilise pas le port 22. Il fait passer tout le trafic via le même point de terminaison HTTPS que les autres commandes de l’interface de ligne de commande Databricks. Consultez Configurer les règles de pare-feu de nom de domaine.
  • Si un proxy ou un pare-feu inspecte le trafic TLS, vérifiez qu’il autorise la demande de mise à niveau WebSocket. Un intermédiaire qui bloque ou retire la mise à niveau provoque une défaillance ou une expiration de la connexion. Demandez à votre administrateur réseau d’autoriser les mises à jour WebSocket vers votre domaine d’espace de travail, ou de contourner l’inspection TLS pour ce domaine.
  • Si vous vous connectez via un proxy HTTP d’entreprise, définissez la variable d’environnement HTTPS_PROXY, ou NO_PROXY pour contourner le proxy pour le domaine de votre espace de travail. Le tunnel SSH utilise la même configuration de proxy que les autres commandes CLI Databricks. Voir la configuration du serveur proxy.
  • Vérifiez que votre machine locale dispose d’un accès HTTPS à github.com et release-assets.githubusercontent.com.
  • Augmentez le délai d’expiration SSH. Consultez Se connecter à l’aide de Visual Studio Code ou du curseur.
  • Pour les erreurs d’incompatibilité de clé, supprimez ~/.databricks/ssh-tunnel-keys et réexécutez databricks ssh setup.
  • Pour les erreurs « l’identification de l’hôte distant a changé », vérifiez le ~/.ssh/known_hosts fichier et supprimez les entrées associées à votre cluster.
  • Les sessions SSH peuvent être supprimées après 1 heure et pas plus de 10 connexions SSH peuvent être effectuées sur un seul cluster. Voir les limitations des tunnels SSH.

code commande non trouvée

Si vous voyez Error: exec: "code": executable file not found in $PATH, ouvrez la palette de commandes (Cmd/Ctrl+Maj+P), sélectionnez Commande Shell : installez la commande « code » dans PATH, puis redémarrez votre session IDE ou terminal.

Erreurs d’authentification de la CLI

  • Connectez-vous à votre espace de travail via databricks auth login.
  • Pour la capacité de calcul classique, confirmez que vous avez les autorisations CAN MANAGE sur le cluster.

Le jeton de rafraîchissement est invalide

Si databricks ssh connect échoue avec error getting token, invalid_grant, et Refresh token is invalid, le serveur d’autorisation a rejeté le token de rafraîchissement OAuth sauvegardé par la CLI. Reconnectez-vous pour obtenir une nouvelle session :

  1. Identifiez le profil de configuration de l’espace de travail auquel vous souhaitez vous connecter :

    databricks auth profiles --skip-validate
    
  2. Reconnectez-vous avec ce profil. Remplacez <workspace-url> par l’URL de l’espace de travail, sans le /oidc/v1/token chemin, et <profile-name> par le nom de profil correspondant :

    databricks auth login --host <workspace-url> --profile <profile-name>
    

    Complétez le processus d'authentification dans votre navigateur.

  3. Réessayez la connexion avec le même profil :

    databricks ssh connect --ide vscode --profile <profile-name>
    

    Utilisez --ide cursor pour Cursor, ou omettez --ide pour une session terminale.

Si l’erreur persiste, vérifiez que la commande ratée cible le même espace de travail et le même profil auxquels vous venez de vous connecter. Voir l’authentification utilisateur-machine OAuth (U2M).

Le code Python ou les notebooks échouent lors de la session SSH

Les fichiers disparaissent ou l’environnement se réinitialise après un redémarrage du cluster

  • Les fichiers dans les montages /Workspace, /Volumes et /dbfs persistent après les redémarrages de cluster. Les fichiers dans /home, /rootet d’autres chemins locaux sont éphémères et perdus lors du redémarrage.
  • Utilisez la gestion des bibliothèques de cluster pour les dépendances persistantes. Automatisez les réinstallations à l’aide de scripts init si nécessaire. Consultez En quoi consistent les scripts d'initialisation ?.

Échec de l’installation SSH sur Windows (WSL)

Exécutez databricks ssh setup directement sur Windows, et non dans WSL. L’instance Windows Visual Studio Code ne trouve pas les configurations SSH créées côté WSL.

Questions fréquentes (FAQ)

Le calcul serverless nécessite-t-il une installation SSH ?

Non. Après avoir installé et authentifié l’interface CLI Databricks, utilisez databricks ssh connect pour le calcul serverless. La databricks ssh setup commande configure les entrées SSH réutilisables pour le calcul dédié classique.

Le tunnel SSH de Databricks nécessite-t-il le port 22 ?

Non. Le tunnel SSH transporte le trafic via HTTPS vers votre domaine d’espace de travail et nécessite le support WebSocket. Votre réseau, VPN, pare-feu et proxy doivent permettre ce trafic. Voir échec de la connexion SSH ou expiration du délai.

Comment le tunnel SSH est-il différent de Databricks Connect ?

Databricks Connect vous permet d’écrire du code à l’aide d’API Spark et de les exécuter à distance sur le calcul Databricks au lieu de la session Spark locale. L’extension Databricks Visual Studio Code utilise Databricks Connect pour fournir un débogage intégré du code utilisateur sur Databricks.

Le tunnel SSH vous permet d’accéder à l’espace de travail depuis votre IDE et déplace tout votre environnement de développement sur l’infrastructure de calcul. Python, le noyau et l’exécution du code s’exécutent sur Azure Databricks avec accès aux ressources de calcul.

Comment mon code et mes données sont-ils sécurisés ?

Le trafic SSH est chiffré de bout en bout, et le code s’exécute sur la ressource de calcul Azure Databricks à laquelle vous vous connectez. L’authentification utilise la CLI Databricks et votre profil d’espace de travail configuré. Voir Quelles méthodes d’authentification sont prises en charge ?

Quels environnements de développement intégrés (IDE) sont pris en charge ?

Visual Studio Code et cursor sont officiellement pris en charge. N’importe quel IDE avec des fonctionnalités SSH est compatible, mais seuls VS Code et Cursor sont testés.

Toutes les fonctionnalités de notebook Databricks sont-elles disponibles à partir de l’IDE ?

Certaines fonctionnalités telles que display(), dbutilset %sql sont disponibles avec des limitations ou une configuration manuelle. Voir Comportement du notebook dans les sessions SSH.

Mon cluster démarre-t-il automatiquement quand je me connecte à l’aide du tunnel SSH ?

Oui, mais s’il faut plus de temps pour démarrer le cluster que le délai d’expiration de connexion, la tentative de connexion échoue. Pour éviter cela, augmentez la valeur de Remote.SSH : Connect Timeout depuis la palette de commandes (ou remote.SSH.connectTimeout dans settings.json) afin de réduire davantage la probabilité d'erreurs de timeout.

Comment savoir si mon cluster est en cours d’exécution ?

Accédez à Compute dans l’interface utilisateur de l’espace de travail Databricks et vérifiez l’état du cluster. Le cluster doit indiquer En cours d'exécution pour que la connexion SSH fonctionne.

Comment déconnecter ma session SSH/IDE ?

Vous pouvez déconnecter une session en fermant votre fenêtre IDE, en utilisant l’option Déconnexion dans votre IDE, en fermant votre terminal SSH ou en exécutant la exit commande dans le terminal.

Comment arrêter le cluster et éviter les frais lorsque je ne l'utilise pas ?

Pour arrêter immédiatement, terminez le cluster depuis l’interface utilisateur de l’espace de travail. Accédez à Calcul dans l’interface utilisateur de l’espace de travail Databricks, recherchez votre cluster, puis cliquez sur Arrêter ou arrêter.

Définissez une stratégie de terminaison automatique courte sur votre cluster à partir de l’interface utilisateur de l’espace de travail. Après vous être déconnecté, le tunnel SSH attend la période shutdown-delay (par défaut : 10 minutes), puis le délai d’attente du cluster s’applique. Si vous utilisez --keep-detached-processes, le cluster ne se termine pas automatiquement tant que des processus détachés sont en cours d’exécution. Cela s'applique également aux connexions sans l'indicateur qui réutilisent un tunnel démarré avec celui-ci. Consultez Connexions à un tunnel existant.

Comment gérer les dépendances persistantes ?

Les dépendances installées pendant une session sont perdues après le redémarrage du cluster. Utilisez le stockage persistant (/Workspace/Users/<your-username>) pour les exigences et les scripts d’installation. Utilisez des bibliothèques de cluster ou des scripts init pour l’automatisation.

Quelles méthodes d’authentification sont prises en charge ?

L’authentification utilise l’interface CLI Databricks et votre ~/.databrickscfg fichier de profils. Les clés SSH sont gérées par le tunnel SSH.

Puis-je me connecter à des bases de données ou services externes à partir du cluster ?

Oui, tant que la mise en réseau de votre cluster autorise les connexions sortantes et que vous disposez des bibliothèques nécessaires.

Puis-je utiliser des extensions IDE supplémentaires ?

La plupart des extensions fonctionnent quand elles sont installées dans votre session SSH distante, en fonction de votre IDE et de votre cluster. Visual Studio Code par défaut n’installe pas les extensions locales sur les hôtes distants. Vous pouvez les installer manuellement en ouvrant le panneau des extensions et en activant vos extensions locales sur l’hôte distant. Vous pouvez également configurer Visual Studio Code pour toujours installer certaines extensions à distance. Consultez Se connecter à Databricks.

Oui, toutefois, les administrateurs de l’espace de travail doivent ajouter à la liste d’autorisation les URL des marketplaces d’extensions de Visual Studio Code et de Cursor. Votre ordinateur local doit également avoir la possibilité d’accéder à Internet.