Aprire una sessione SSH in un contenitore nel servizio app Azure
Secure Shell (SSH) può essere usato per eseguire comandi amministrativi in remoto in un contenitore. servizio app fornisce il supporto SSH diretto in un'app ospitata in un contenitore.
Aprire una sessione SSH nel browser
Per aprire una sessione SSH diretta con il contenitore, l'app deve essere in esecuzione.
Incollare l'URL seguente nel browser e sostituire <app-name>
con il nome dell'app:
https://<app-name>.scm.azurewebsites.net/webssh/host
Se non lo si è già fatto, per connettersi è necessario eseguire l'autenticazione con la sottoscrizione di Azure. Al termine dell'autenticazione viene visualizzata una shell nel browser, in cui è possibile eseguire i comandi all'interno del contenitore.
È anche possibile connettersi al contenitore direttamente dal computer di sviluppo locale tramite SSH e SFTP.
Aprire una sessione SSH nel browser
Per aprire una sessione SSH diretta con il contenitore, l'app deve essere in esecuzione.
Incollare l'URL seguente nel browser e sostituire <app-name>
con il nome dell'app:
https://<app-name>.scm.azurewebsites.net/webssh/host
Se non lo si è già fatto, per connettersi è necessario eseguire l'autenticazione con la sottoscrizione di Azure. Al termine dell'autenticazione viene visualizzata una shell nel browser, in cui è possibile eseguire i comandi all'interno del contenitore.
Usare il supporto SSH con le immagini Docker personalizzate
Vedere Configurare SSH in un contenitore personalizzato.
Aprire una sessione SSH dalla shell remota
Nota
Questa funzionalità è attualmente disponibile in anteprima.
Con il tunneling TCP è possibile creare una connessione di rete tra il computer di sviluppo e l'app Web per contenitori mediante una connessione WebSocket autenticata. Consente di aprire una sessione SSH con il contenitore in esecuzione nel servizio app dal client scelto.
Per iniziare, è necessario installare l'interfaccia della riga di comando di Azure. Per esaminare il funzionamento senza installare l'interfaccia della riga di comando di Azure, aprire Azure Cloud Shell.
Aprire una connessione remota all'app usando il comando az webapp create-remote-connection . Specificare subscription-id>,< group-name> e <app-name> per l'app.<
az webapp create-remote-connection --subscription <subscription-id> --resource-group <resource-group-name> -n <app-name> &
Suggerimento
Il carattere &
alla fine del comando serve solo per comodità, se si usa Cloud Shell. Esegue il processo in background in modo che sia possibile eseguire il comando successivo nella stessa shell.
Nota
Se questo comando non riesce, assicurarsi che il debug remoto sia disabilitato con il comando seguente:
az webapp config set --resource-group <resource-group-name> -n <app-name> --remote-debugging-enabled=false
L'output del comando include le informazioni necessarie per aprire una sessione SSH.
Port 21382 is open
SSH is available { username: root, password: Docker! }
Start your favorite client and connect to port 21382
Aprire una sessione SSH con il contenitore tramite il client scelto usando la porta locale. Nell'esempio seguente si usa il comando ssh predefinito:
ssh root@127.0.0.1 -p <port>
Quando viene richiesto, digitare yes
per continuare con la connessione. Verrà richiesto di specificare la password. Usare il valore Docker!
che è stato illustrato in precedenza.
Warning: Permanently added '[127.0.0.1]:21382' (ECDSA) to the list of known hosts. root@127.0.0.1's password:
Al termine dell'autenticazione verrà visualizzata la schermata iniziale della sessione.
_____ / _ \ __________ _________ ____ / /_\ \___ / | \_ __ \_/ __ \ / | \/ /| | /| | \/\ ___/ \____|__ /_____ \____/ |__| \___ > \/ \/ \/ A P P S E R V I C E O N L I N U X 0e690efa93e2:~#
A questo punto si è connessi al connettore.
Provare a eseguire il comando top. Dovrebbe essere visibile il processo dell'app nell'elenco di processi. Nell'esempio seguente è quello con 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]
Passaggi successivi
È possibile pubblicare eventuali domande e dubbi nel forum di Azure.
Per altre informazioni sull'app Web per contenitori, vedere:
- Introducing remote debugging of Node.js apps on Azure App Service from VS Code (Introduzione al debug remoto delle app Node.js nel Servizio app di Azure da Visual Studio Code)
- Guida introduttiva: Eseguire un contenitore personalizzato in servizio app
- Azure App Service Web App for Containers FAQ (Domande frequenti sulle app Web per contenitori del servizio app di Azure)