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