【应用服务 App Service】解决无法从Azure门户SSH登录问题

问题描述

中国区的Azure App Service(应用服务)已经支持创建Docker并选择Linux环境。在使用中,我们可以继续通过kudu站点的方式登录查看站点的一些日志及部署文件。它的登录方式与App Service Windows方式一样(通过门户目录的Advance Tool登录,或在URL中添加.SCM登录)。如想要跟多的操作及Linux SSH方式,在微软的官方站点中,推荐有两种登录方式:

  • 在浏览器中打开 SSH 会话

对于第一种,从门户左侧目录“SSH”登录到SSH窗口时,则一直出现CREDENTIALS提示,始终无法成功登录。错误截图如下:

问题原因

在浏览器中通过开发者工具(F12)查看到错误发生在加载Jquery 1.11.0文件,Azure App Service使用的JS地址为 https://code.jquery.com/jquery-1.11.0.min.js,经验证,该地址无法在国内网络正常访问。

查看错误信息截图:

国内网络无法访问:(https://code.jquery.com/jquery-1.11.0.min.js)

替换方案

在了解到根本原因后,替代方案有两种。

以下部分为在使用远程SSL的方式时,在Powershell中执行的命令及截图:

第一步:使用Powershell登录到中国区并选择订阅

az cloud set --name AzureChinaCloud
az login
az account set --subscription 'select subscription'
  • 第一行命令设置登录的环境。如不设定,默认为Global Azure
  • 第二行命令通过浏览器打开登录页面。登录成功后,会列出所有的订阅号。
  • 第三行命令设置目标订阅

第二步:使用 az webapp create-remote-connection 命令打开到应用的远程连接

完整命令为:

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

第三步:开启新的Powershell窗口,建立SSH连接

通过第二步中的端口60812,建立SSH连接,命令为:ssh root@127.0.0.1 -p 10812

 

参考资料

以交互方式登录: https://docs.azure.cn/zh-cn/cli/authenticate-azure-cli?view=azure-cli-latest
在 Azure 应用服务中打开 Linux 容器的 SSH 会话: https://docs.azure.cn/zh-cn/app-service/configure-linux-open-ssh-session#open-ssh-session-in-browser
Nginx的Dockerfile内容:https://hub.docker.com/layers/nginx/library/nginx/latest/images/sha256-d73056bfea356376bf2464e544cc5508d8670f51b56b17a76638ee5433fb8e9f?context=explore

开启SSH服务,在自定义镜像时添加ssh server的部分: https://docs.microsoft.com/en-us/azure/app-service/configure-custom-container?pivots=container-linux#enable-ssh

参考微软官方给出的镜像进行构建自定义镜像: https://github.com/Azure-App-Service/tomcat/blob/dev/8.5-jre8/Dockerfile

原文地址:https://www.cnblogs.com/lulight/p/14053145.html