Dela via


Öppna en SSH-session till en container i Azure App Service

Secure Shell (SSH) kan användas för att köra administrativa kommandon via fjärranslutning till en container. App Service tillhandahåller SSH-stöd direkt till en app som finns i en anpassad Windows-container.

Anpassade Windows-containrar kräver inga särskilda inställningar för att webbläsarens SSH-session ska fungera. SSH-sessioner via Azure CLI stöds inte.

Linux App Service SSH

Secure Shell (SSH) kan användas för att köra administrativa kommandon via fjärranslutning till en container. App Service tillhandahåller SSH-stöd direkt till en app som finns i en Linux-container (inbyggd eller anpassad).

De inbyggda Linux-containrarna har redan den konfiguration som krävs för att aktivera SSH-sessioner. Anpassade Linux-containrar kräver ytterligare konfigurationer för att aktivera SSH-sessioner. Se Aktivera SSH.

Linux App Service SSH

Du kan också ansluta till containern direkt från din lokala utvecklingsdator med hjälp av SSH och SFTP.

Öppna en SSH-session i webbläsaren

Om du ska öppna en SSH-direktsession med din container måste appen vara igång.

Klistra in följande URL i webbläsaren och ersätt <app-name> med namnet på appen:

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

Om du inte redan har autentiserats måste du autentisera dig med din Azure-prenumeration för att kunna ansluta. När autentiseringen är klar visas ett gränssnitt i webbläsaren där du kan köra kommandon i containern.

SSH-anslutning

Öppna SSH-session med Azure CLI

Med TCP-tunnlar kan du skapa en nätverksanslutning mellan utvecklingsdatorn och Linux-containrar via en autentiserad WebSocket-anslutning. Det gör att du kan öppna en SSH-session med containern som körs i App Service från valfri klient.

För att komma igång måste du installera Azure CLI. Om du vill se hur det fungerar utan att installera Azure CLI öppnar du Azure Cloud Shell.

Öppna en fjärranslutning till din app med kommandot az webapp create-remote-connection . Ange <prenumerations-ID>,< gruppnamn> och <appnamn> för din app.

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

Dricks

& i slutet av kommandot är bara för enkelhetens skull om du använder Cloud Shell. Den kör processen i bakgrunden så att du kan köra nästa kommando i samma gränssnitt.

Kommentar

Om det här kommandot misslyckas kontrollerar du att fjärrfelsökning är inaktiverat med följande kommando:

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

Med kommandoutdata får du den information du behöver för att öppna en SSH-session.

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

Öppna en SSH-session med din container med valfri klient med hjälp av den lokala porten som anges i utdata (<port-output>). Med linux ssh-kommandot kan du till exempel köra ett enda kommando som java -version:

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

Om du vill ange en fullständig SSH-session kör du bara:

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

När du uppmanas att göra det skriver du yes för att fortsätta ansluta. Du uppmanas sedan att ange lösenordet. Använd Docker!, som visades för dig tidigare.

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

När du har autentiserats bör du se välkomstskärmen för sessionen.

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

0e690efa93e2:~#

Nu är du ansluten till anslutningsappen.

Prova att köra det översta kommandot. Du bör kunna se appens process i processlistan. I exemplet nedan är det den med 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ästa steg

Du kan publicera frågor och problem på Azure-forumet.

Mer information om Web App for Containers finns i: