Partage via


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 directement dans une application hébergée dans un conteneur personnalisé Windows.

Les conteneurs personnalisés Windows ne nécessitent aucun paramètre spécial pour que la session SSH du navigateur fonctionne. Les sessions SSH via Azure CLI ne sont pas prises en charge.

SSH App Service Linux

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 directement dans une application hébergée dans un conteneur Linux (intégré ou personnalisé).

Les conteneurs Linux intégrés ont déjà la configuration nécessaire pour activer les sessions SSH. Les conteneurs personnalisés Linux nécessitent des configurations supplémentaires pour activer les sessions SSH. Consultez Activer SSH.

SSH App Service Linux

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.

Connexion SSH

Ouvrir une session SSH avec Azure CLI

À l’aide du tunneling TCP, vous pouvez créer une connexion réseau entre votre machine de développement et les conteneurs Linux 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.

Verifying if app is running....
App is running. Trying to establish tunnel connection...
Opening tunnel on addr: 127.0.0.1
Opening tunnel on port: <port-output>
SSH is available { username: root, password: Docker! }
Ctrl + C to close

Ouvrez une session SSH avec votre conteneur en utilisant le client de votre choix et le port local fourni dans la sortie (<port-output>). Par exemple, avec la commande ssh Linux, vous pouvez exécuter une seule commande comme java -version :

ssh root@127.0.0.1 -m hmac-sha1 -p <port-output> java -version

Ou, pour entrer une session SSH complète, exécutez simplement :

ssh root@127.0.0.1 -m hmac-sha1 -p <port-output>

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 :