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.

SSH connection

Linux App Service 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.

SSH connection

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: