Öffnen einer SSH-Sitzung mit einem Container in Azure App Service
Secure Shell (SSH) kann verwendet werden, um administrative Befehle remote in einem Container auszuführen. App Service bietet SSH-Unterstützung direkt in einer App, die in einem Container gehostet wird.
Öffnen einer SSH-Sitzung im Browser
Um eine direkte SSH-Sitzung mit Ihrem Container zu öffnen, sollte Ihre App ausgeführt werden.
Fügen Sie die folgende URL in Ihren Browser ein, und ersetzen Sie <app-name>
durch den Namen Ihrer App:
https://<app-name>.scm.azurewebsites.net/webssh/host
Wenn Sie noch nicht authentifiziert sind, müssen Sie sich mit Ihrem Azure-Abonnement für die Verbindung authentifizieren. Nach der Authentifizierung wird im Browser eine Shell angezeigt, über die Sie Befehle innerhalb Ihres Containers ausführen können.
Sie können auch direkt von Ihrem lokalen Entwicklungscomputer per SSH und SFTP eine Verbindung herstellen.
Öffnen einer SSH-Sitzung im Browser
Um eine direkte SSH-Sitzung mit Ihrem Container zu öffnen, sollte Ihre App ausgeführt werden.
Fügen Sie die folgende URL in Ihren Browser ein, und ersetzen Sie <app-name>
durch den Namen Ihrer App:
https://<app-name>.scm.azurewebsites.net/webssh/host
Wenn Sie noch nicht authentifiziert sind, müssen Sie sich mit Ihrem Azure-Abonnement für die Verbindung authentifizieren. Nach der Authentifizierung wird im Browser eine Shell angezeigt, über die Sie Befehle innerhalb Ihres Containers ausführen können.
Verwenden der SSH-Unterstützung mit benutzerdefinierten Docker-Images
Siehe Konfigurieren von SSH in einem benutzerdefinierten Container.
Öffnen einer SSH-Sitzung per Remote-Shell
Hinweis
Diese Funktion steht derzeit als Vorschau zur Verfügung.
Mithilfe von TCP-Tunneln können Sie eine Netzwerkverbindung zwischen Ihrem Entwicklungscomputer und Web-App für Container herstellen, indem Sie eine authentifizierte WebSocket-Verbindung verwenden. Auf diese Weise können Sie eine SSH-Sitzung mit Ihrem Container, der unter App Service ausgeführt wird, auf dem Client Ihrer Wahl öffnen.
Zunächst müssen Sie die Azure-Befehlszeilenschnittstelle (Azure CLI) installieren. Öffnen Sie Azure Cloud Shell, wenn Sie sich die Vorgehensweise ohne Installation der Azure CLI ansehen möchten.
Öffnen Sie eine Remoteverbindung mit Ihrer App, indem Sie den Befehl az webapp create-remote-connection verwenden. Geben Sie <Abonnement-ID>, <Gruppenname> und <App-Name> für Ihre App an.
az webapp create-remote-connection --subscription <subscription-id> --resource-group <resource-group-name> -n <app-name> &
Tipp
&
am Ende des Befehls ist der Vollständigkeit halber angegeben, falls Sie Cloud Shell verwenden. Hierbei wird der Prozess im Hintergrund ausgeführt, damit Sie den nächsten Befehl in derselben Shell ausführen können.
Hinweis
Wenn bei diesem Befehl ein Fehler auftritt, stellen Sie sicher, dass das Remotedebuggen mit dem folgenden Befehl deaktiviert ist:
az webapp config set --resource-group <resource-group-name> -n <app-name> --remote-debugging-enabled=false
Mit der Befehlsausgabe erhalten Sie die Informationen, die Sie zum Öffnen einer SSH-Sitzung benötigen.
Port 21382 is open
SSH is available { username: root, password: Docker! }
Start your favorite client and connect to port 21382
Öffnen Sie eine SSH-Sitzung mit Ihrem Container mit dem Client Ihrer Wahl, indem Sie den lokalen Port verwenden. Im folgenden Beispiel wird der Standardbefehl ssh verwendet:
ssh root@127.0.0.1 -p <port>
Geben Sie nach Aufforderung yes
ein, um mit der Verbindungsherstellung fortzufahren. Sie werden dann aufgefordert, das Kennwort einzugeben. Verwenden Sie Docker!
, wie oben gezeigt.
Warning: Permanently added '[127.0.0.1]:21382' (ECDSA) to the list of known hosts. root@127.0.0.1's password:
Nachdem Sie authentifiziert wurden, sollte der Begrüßungsbildschirm der Sitzung angezeigt werden.
_____ / _ \ __________ _________ ____ / /_\ \___ / | \_ __ \_/ __ \ / | \/ /| | /| | \/\ ___/ \____|__ /_____ \____/ |__| \___ > \/ \/ \/ A P P S E R V I C E O N L I N U X 0e690efa93e2:~#
Sie sind jetzt mit Ihrem Connector verbunden.
Versuchen Sie, den Befehl top auszuführen. Sie sollten den Prozess Ihrer App in der Prozessliste verfolgen können. In der folgenden Beispielausgabe ist dies der Prozess mit 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]
Nächste Schritte
Im Azure-Forum können Sie Fragen stellen und Antworten auf Probleme erhalten.
Weitere Informationen zu Web-App für Container finden Sie in den folgenden Artikeln:
- Introducing remote debugging of Node.js apps on Azure App Service from VS Code (Einführung in das Remotedebuggen von Node.js-Apps unter Azure App Service über VS Code)
- Schnellstart: Ausführen eines benutzerdefinierten Containers in App Service
- Azure App Service-Web-App für Container – FAQs