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 direttamente in un'app ospitata in un contenitore personalizzato di Windows.
I contenitori personalizzati di Windows non richiedono impostazioni speciali per il funzionamento della sessione SSH del browser. Le sessioni SSH tramite l'interfaccia della riga di comando di Azure non sono supportate.
Secure Shell (SSH) può essere usato per eseguire comandi amministrativi in remoto in un contenitore. servizio app fornisce il supporto SSH direttamente in un'app ospitata in un contenitore Linux (predefinito o personalizzato).
I contenitori Linux predefiniti hanno già la configurazione necessaria per abilitare le sessioni SSH. I contenitori personalizzati Linux richiedono configurazioni aggiuntive per abilitare le sessioni SSH. Vedere Abilitare SSH.
È 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.
Aprire una sessione SSH con l'interfaccia della riga di comando di Azure
Usando il tunneling TCP è possibile creare una connessione di rete tra il computer di sviluppo e i contenitori Linux tramite 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.
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
Aprire una sessione SSH con il contenitore con il client preferito, usando la porta locale fornita nell'output (<port-output>
). Ad esempio, con il comando ssh linux, è possibile eseguire un singolo comando, ad java -version
esempio :
ssh root@127.0.0.1 -m hmac-sha1 -p <port-output> java -version
In alternativa, per immettere una sessione SSH completa, è sufficiente eseguire:
ssh root@127.0.0.1 -m hmac-sha1 -p <port-output>
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)
- Avvio rapido: Eseguire un contenitore personalizzato nel Servizio app
- Azure App Service Web App for Containers FAQ (Domande frequenti sulle app Web per contenitori del servizio app di Azure)