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


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

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

Пользовательские контейнеры Windows не требуют специальных настроек для работы SSH-сеанса браузера.

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

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

Снимок экрана: SSH службы приложений.

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

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

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

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

Используйте команду az webapp ssh .

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

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

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

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

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

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

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.

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.

Дополнительные сведения о службе приложений для контейнеров см. в следующем разделе: