Ö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.
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.
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.
Ö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: