Ouvrir une session SSH sur un conteneur dans Azure App Service

Secure Shell (SSH) peut être utilisé pour exécuter des commandes d’administration à distance dans un conteneur. App Service fournit une prise en charge SSH directe dans une application hébergée dans un conteneur.

Ouvrir une session SSH dans un navigateur

Pour établir une session SSH directe avec votre conteneur, votre application doit être en cours d’exécution.

Collez l’URL suivante dans votre navigateur et remplacez <app-name> par le nom de votre application :

https://<app-name>.scm.azurewebsites.net/webssh/host

Si vous n’êtes pas encore authentifié, vous devez le faire avec votre abonnement Azure pour vous connecter. Une fois authentifié, vous voyez un interpréteur de commandes dans le navigateur, vous permettant d’exécuter des commandes à l’intérieur de votre conteneur.

SSH connection

Linux App Service SSH

Vous pouvez également vous connecter au conteneur directement à partir de votre machine de développement locale par SSH et SFTP.

Ouvrir une session SSH dans un navigateur

Pour établir une session SSH directe avec votre conteneur, votre application doit être en cours d’exécution.

Collez l’URL suivante dans votre navigateur et remplacez <app-name> par le nom de votre application :

https://<app-name>.scm.azurewebsites.net/webssh/host

Si vous n’êtes pas encore authentifié, vous devez le faire avec votre abonnement Azure pour vous connecter. Une fois authentifié, vous voyez un interpréteur de commandes dans le navigateur, vous permettant d’exécuter des commandes à l’intérieur de votre conteneur.

SSH connection

Utiliser la prise en charge SSH avec des images Docker personnalisées

Consultez Configurer SSH dans un conteneur personnalisé.

Ouvrir une session SSH à partir d’un interpréteur de commandes à distance

Notes

Cette fonctionnalité est actuellement en préversion.

À l’aide du tunneling TCP, vous pouvez créer une connexion réseau entre votre machine de développement et Web App pour conteneurs via une connexion WebSocket authentifiée. Il vous permet d’ouvrir une session SSH avec votre conteneur en cours d’exécution dans App Service à partir du client de votre choix.

Pour commencer, vous devez installer Azure CLI. Pour voir comment il fonctionne sans installer Azure CLI, ouvrez Azure Cloud Shell.

Ouvrez une connexion à distance vers votre application à l’aide de la commande az webapp create-remote-connection. Spécifiez <id-abonnement>, <nom-groupe> et <nom-application> pour votre application.

az webapp create-remote-connection --subscription <subscription-id> --resource-group <resource-group-name> -n <app-name> &

Conseil

& à la fin de la commande est simplement présent pour des raisons pratiques si vous utilisez Cloud Shell. Il exécute le processus en arrière-plan afin que vous puissiez exécuter la commande suivante dans le même interpréteur de commandes.

Notes

Si cette commande échoue, vérifiez que le débogage à distance est désactivé à l’aide de la commande suivante :

az webapp config set --resource-group <resource-group-name> -n <app-name> --remote-debugging-enabled=false

La sortie de commande vous donne les informations dont vous avez besoin pour ouvrir une session SSH.

Port 21382 is open
SSH is available { username: root, password: Docker! }
Start your favorite client and connect to port 21382

Ouvrez une session SSH avec votre conteneur au moyen du client de votre choix, en utilisant le port local. L’exemple suivant utilise la commande ssh par défaut :

ssh root@127.0.0.1 -p <port>

Lorsque cela vous est demandé, tapez yes pour poursuivre la connexion. Vous êtes alors invité à entrer le mot de passe. Utilisez Docker!, qui vous a été indiqué précédemment.

Warning: Permanently added '[127.0.0.1]:21382' (ECDSA) to the list of known hosts.
root@127.0.0.1's password:

Une fois authentifié, vous devez voir l’écran d’accueil de session.

  _____
  /  _  \ __________ _________   ____
 /  /_\  \___   /  |  \_  __ \_/ __ \
/    |    \/    /|  |  /|  | \/\  ___/
\____|__  /_____ \____/ |__|    \___  >
        \/      \/                  \/
A P P   S E R V I C E   O N   L I N U X

0e690efa93e2:~#

Vous êtes maintenant connecté à votre connecteur.

Essayez d’exécuter la commande top. Vous devez être en mesure de voir les processus de votre application dans la liste des processus. Dans l’exemple ci-dessous, il s’agit de celui avec PID 263.

Mem: 1578756K used, 127032K free, 8744K shrd, 201592K buff, 341348K cached
CPU:   3% usr   3% sys   0% nic  92% idle   0% io   0% irq   0% sirq
Load average: 0.07 0.04 0.08 4/765 45738
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
    1     0 root     S     1528   0%   0   0% /sbin/init
  235     1 root     S     632m  38%   0   0% PM2 v2.10.3: God Daemon (/root/.pm2)
  263   235 root     S     630m  38%   0   0% node /home/site/wwwroot/app.js
  482   291 root     S     7368   0%   0   0% sshd: root@pts/0
45513   291 root     S     7356   0%   0   0% sshd: root@pts/1
  291     1 root     S     7324   0%   0   0% /usr/sbin/sshd
  490   482 root     S     1540   0%   0   0% -ash
45539 45513 root     S     1540   0%   0   0% -ash
45678 45539 root     R     1536   0%   0   0% top
45733     1 root     Z        0   0%   0   0% [init]
45734     1 root     Z        0   0%   0   0% [init]
45735     1 root     Z        0   0%   0   0% [init]
45736     1 root     Z        0   0%   0   0% [init]
45737     1 root     Z        0   0%   0   0% [init]
45738     1 root     Z        0   0%   0   0% [init]

Étapes suivantes

Vous pouvez poser des questions et signaler vos préoccupations sur le forum Azure.

Pour plus d’informations sur Web App pour conteneurs, consultez :