Поделиться через


Открытие сеанса SSH в контейнере в службе приложение Azure

Secure Shell (SSH) можно использовать для удаленного выполнения административных команд в контейнере. Служба приложений предоставляет поддержку SSH непосредственно в приложение, размещенное в пользовательском контейнере Windows.

Пользовательские контейнеры Windows не требуют специальных параметров для работы сеанса SSH браузера. Сеансы SSH через Azure CLI не поддерживаются.

SSH в Службе приложений для Linux

Secure Shell (SSH) можно использовать для удаленного выполнения административных команд в контейнере. Служба приложений обеспечивает поддержку SSH непосредственно в приложении, размещенном в контейнере Linux (встроенном или пользовательском).

Встроенные контейнеры Linux уже имеют необходимую конфигурацию для включения сеансов SSH. Пользовательские контейнеры Linux требуют дополнительных конфигураций для включения сеансов SSH. См. раздел "Включить SSH".

SSH в Службе приложений для Linux

Вы также можете подключиться к контейнеру непосредственно из локального компьютера, где ведется разработка, используя SSH и SFTP.

Открытие сеанса SSH в браузере

Чтобы открыть прямой сеанс SSH с контейнером, необходимо запустить приложение.

Вставьте следующий URL-адрес в браузер и замените <app-name> именем вашего приложения:

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

Если вы не прошли аутентификацию, это потребуется сделать, подключившись с помощью подписки Azure. После выполнения проверки подлинности отобразится оболочка в браузере. Здесь можно запускать команды внутри контейнера.

SSL-подключение

Открытие сеанса SSH с помощью Azure CLI

С помощью туннелирования TCP можно создать сетевое подключение между компьютером разработки и контейнерами Linux через подключение WebSocket, прошедшее проверку подлинности. Это позволяет открыть из необходимого клиента сеанс SSH с контейнером, запущенным в службе приложений.

Чтобы начать работу, нужно установить Azure CLI. Чтобы ознакомиться с принципами работы без установки Azure CLI, перейдите к статье Обзор Azure Cloud Shell.

Откройте удаленное подключение к приложению, используя команду az webapp create-remote-connection. Укажите параметры <subscription-id>, <group-name> и <app-name> для своего приложения.

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

Совет

Знак & в конце команды предназначен исключительно для удобства при использовании Cloud Shell. Он позволяет запустить процесс в фоновом режиме и выполнять следующую команду в той же оболочке.

Примечание.

Если эта команда завершится с ошибкой, с помощью указанной ниже команды проверьте, что удаленная отладкаотключена:

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

В выходных данных команды содержатся сведения, необходимые для того, чтобы открыть сеанс 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

Откройте сеанс SSH с контейнером с выбранным клиентом, используя локальный порт, предоставленный в выходных данных (<port-output>). Например, с помощью команды SSH для Linux можно выполнить одну команду, напримерjava -version:

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

Или, чтобы ввести полный сеанс SSH, просто выполните следующую команду:

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

Если отобразится запрос, введите yes, чтобы продолжить установку подключения. Затем появится запрос на ввод пароля. Используйте показанный ранее Docker!.

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

После выполнения проверки подлинности появится приветственный экран сеанса.

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

0e690efa93e2:~#

Вы подключены к соединителю.

Попробуйте выполнить команду top. В списке процессов должен содержаться процесс приложения. В приведенном ниже примере выходных данных — это процесс с 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]

Следующие шаги

Если у вас возникли вопросы, опубликуйте их на форуме Azure.

Дополнительные сведения о платформе "Веб-приложения для контейнеров" см. в статьях: