Открытие сеанса SSH в контейнере в службе приложение Azure
Secure Shell (SSH) можно использовать для удаленного выполнения административных команд в контейнере. Служба приложений предоставляет поддержку SSH непосредственно в приложение, размещенное в пользовательском контейнере Windows.
Пользовательские контейнеры Windows не требуют специальных параметров для работы сеанса SSH браузера. Сеансы SSH через Azure CLI не поддерживаются.
Secure Shell (SSH) можно использовать для удаленного выполнения административных команд в контейнере. Служба приложений обеспечивает поддержку SSH непосредственно в приложении, размещенном в контейнере Linux (встроенном или пользовательском).
Встроенные контейнеры Linux уже имеют необходимую конфигурацию для включения сеансов SSH. Пользовательские контейнеры Linux требуют дополнительных конфигураций для включения сеансов SSH. См. раздел "Включить SSH".
Вы также можете подключиться к контейнеру непосредственно из локального компьютера, где ведется разработка, используя SSH и SFTP.
Открытие сеанса SSH в браузере
Чтобы открыть прямой сеанс SSH с контейнером, необходимо запустить приложение.
Вставьте следующий URL-адрес в браузер и замените <app-name>
именем вашего приложения:
https://<app-name>.scm.azurewebsites.net/webssh/host
Если вы не прошли аутентификацию, это потребуется сделать, подключившись с помощью подписки Azure. После выполнения проверки подлинности отобразится оболочка в браузере. Здесь можно запускать команды внутри контейнера.
Открытие сеанса 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.
Дополнительные сведения о платформе "Веб-приложения для контейнеров" см. в статьях: