Compartilhar via

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

SSH 可用于远程执行在容器上的管理命令。 应用服务直接向 Windows 自定义容器中托管的应用提供 SSH 支持。

Windows 自定义容器不需要浏览器 SSH 会话的任何特殊设置才能正常工作。

显示应用服务 SSH 的屏幕截图。

Windows 应用服务计划不支持通过 Azure CLI 的 SSH 会话。 仅支持 Linux 应用服务计划。

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

在浏览器中打开 SSH 会话

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

使用 az webapp ssh 命令。

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

SSH 连接

使用 Azure CLI 打开 SSH 会话

通过使用 TCP 隧道,可以通过经过身份验证的 WebSocket 连接在开发计算机和 Linux 容器之间创建网络连接。 然后,可以从所选客户端打开与在应用服务中运行的容器的 SSH 会话。

若要开始,需要安装 Azure CLI。 查看其工作原理,而无需安装 Azure CLI。

使用 az webapp create-remote-connection 命令打开与应用的远程连接。 为应用指定 <subscription-id><resource-group-name><app-name>

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

命令输出为您提供打开 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

使用所选客户端(输出中<port-output>提供的本地端口)与容器打开 SSH 会话。 例如,使用 Linux ssh 命令,可以运行如下所示的单个命令 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 论坛上发帖。

若要详细了解适用于容器的应用服务,请参阅: