你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 应用服务中打开容器的 SSH 会话

安全外壳 (SSH) 可用于对容器远程执行管理命令。 应用服务直接向容器中托管的应用提供 SSH 支持。

在浏览器中打开 SSH 会话

若要通过容器打开直接的 SSH 会话,应用应该处于正在运行状态。

将以下 URL 粘贴到浏览器中,将 <app-name> 替换为应用名称:

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

如果尚未进行身份验证,则需通过要连接的 Azure 订阅进行身份验证。 完成身份验证以后,可以看到一个浏览器内 shell,可以在其中的容器中运行命令。

SSH connection

Linux App Service SSH

还可以使用 SSH 和 SFTP 直接从本地开发计算机连接到容器。

在浏览器中打开 SSH 会话

若要通过容器打开直接的 SSH 会话,应用应该处于正在运行状态。

将以下 URL 粘贴到浏览器中,将 <app-name> 替换为应用名称:

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

如果尚未进行身份验证,则需通过要连接的 Azure 订阅进行身份验证。 完成身份验证以后,可以看到一个浏览器内 shell,可以在其中的容器中运行命令。

SSH connection

将 SSH 支持与自定义 Docker 映像配合使用

请参阅在自定义容器中配置 SSH

从远程 shell 打开 SSH 会话

注意

此功能目前为预览版。

使用 TCP 隧道,可以通过经身份验证的 WebSocket 连接在开发计算机与适用于容器的 Web 应用之间创建网络连接。 这样就可以通过所选客户端使用在应用服务中运行的容器打开一个 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)。 它在后台运行此进程,因此你可以在同一 shell 中运行下一命令。

注意

如果此命令失败,请确保通过以下命令禁用远程调试

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

命令输出提供的信息是打开 SSH 会话所需的。

Port 21382 is open
SSH is available { username: root, password: Docker! }
Start your favorite client and connect to port 21382

请使用本地端口通过所选客户端打开容器的 SSH 会话。 以下示例使用默认的 ssh 命令:

ssh root@127.0.0.1 -p <port>

出现提示时,请键入 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 论坛上发帖。

有关用于容器的 Web 应用的详细信息,请参阅: