Compartilhar via


Abrir uma sessão SSH em um contêiner no Serviço de Aplicativo do Azure

O SSH (Secure Shell) pode ser usado para executar comandos administrativos remotamente em um contêiner. O Serviço de Aplicativo fornece suporte ao SSH diretamente em um aplicativo hospedado em um contêiner personalizado do Windows.

Os contêineres personalizados do Windows não exigem configurações especiais para que a sessão SSH do navegador funcione. Não há suporte para as sessões SSH pela CLI do Azure.

SSH do Serviço de Aplicativo do Linux

O SSH (Secure Shell) pode ser usado para executar comandos administrativos remotamente em um contêiner. O Serviço de Aplicativo fornece suporte ao SSH diretamente em um aplicativo hospedado em um contêiner do Linux (interno ou personalizado).

Os contêineres internos do Linux já têm a configuração necessária para habilitar as sessões SSH. Os contêineres personalizados do Linux exigem configurações adicionais para habilitar as sessões SSH. Consulte Habilitar o SSH.

SSH do Serviço de Aplicativo do Linux

Você também pode se conectar ao contêiner diretamente do seu computador de desenvolvimento local usando o SSH e SFTP.

Abra a sessão SSH aberta no navegador

Para abrir uma sessão SSH direta com seu contêiner, seu aplicativo deve estar em execução.

Cole a seguinte URL no seu navegador e substitua <app-name> pelo nome do aplicativo:

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

Se você ainda não estiver autenticado, será necessário autenticar com sua assinatura do Azure para se conectar. Uma vez autenticado, consulte um shell no navegador, onde você pode executar comandos dentro de seu contêiner.

Conexão SSH

Abrir a sessão SSH com a CLI do Azure

Usando o túnel TCP, você pode criar uma conexão de rede entre seu computador de desenvolvimento e contêineres do Linux através de uma conexão WebSocket autenticada. Isso permite que você abra uma sessão SSH com o contêiner em execução no serviço de Serviço de Aplicativo do Azure do cliente de sua escolha.

Para começar, você precisa instalar a CLI do Azure. Para ver como funciona sem instalar a CLI do Azure, abra Azure Cloud Shell.

Abra uma conexão remota para seu aplicativo usando o comando criar az webapp remoto-conexão. Especifique <subscription-id>, <group-name> e <app-name> para o aplicativo.

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

Dica

& no final do comando é apenas para conveniência, se você estiver usando o Azure Cloud Shell. Executa o processo em segundo plano para que você possa executar o próximo comando no mesmo shell.

Observação

Se esse comando falhar, verifique se a depuração remota está desabilitada com o seguinte comando:

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

A saída do comando fornece as informações que você precisa para abrir uma sessão 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

Abra uma sessão SSH com seu contêiner com o cliente da sua escolha, usando a porta local fornecida na saída (<port-output>). Por exemplo, com o comando ssh do linux, você pode executar um único comando como java -version:

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

Ou, para inserir uma sessão SSH completa, basta executar:

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

Ao ser solicitado, digite yes para continuar a se conectar. Você receberá uma solicitação de senha. Use Docker!, que foi mostrado anteriormente.

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

Ao autenticar, você deverá ver a tela de boas-vindas da sessão.

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

0e690efa93e2:~#

Agora você está conectado a seu conector.

Tente executar o comando novamente top. Você deve ser capaz de ver o processo do aplicativo na lista de processos. No exemplo abaixo, é aquele com 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]

Próximas etapas

Você pode postar perguntas e problemas no fórum do Azure.

Para obter mais informações sobre o aplicativo Web para contêineres, consulte: