【应用服务 App Service】解决无法从Azure门户SSH登录问题
问题描述
中国区的Azure App Service(应用服务)已经支持创建Docker并选择Linux环境。在使用中,我们可以继续通过kudu站点的方式登录查看站点的一些日志及部署文件。它的登录方式与App Service Windows方式一样(通过门户目录的Advance Tool登录,或在URL中添加.SCM登录)。如想要跟多的操作及Linux SSH方式,在微软的官方站点中,推荐有两种登录方式:
在浏览器中打开 SSH 会话
从远程 shell 打开 SSH 会话(https://docs.azure.cn/zh-cn/app-service/configure-linux-open-ssh-session#open-ssh-session-from-remote-shell)
对于第一种,从门户左侧目录“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)

替换方案
在了解到根本原因后,替代方案有两种。
- 一是通过VPN,如能正常访问 https://code.jquery.com/jquery-1.11.0.min.js则可以解决此问题。
- 二是使用远程SSL的方式登录。查看详细的步骤见文档(https://docs.azure.cn/zh-cn/app-service/configure-linux-open-ssh-session#open-ssh-session-from-remote-shell)。
以下部分为在使用远程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
【应用服务 App Service】解决无法从Azure门户SSH登录问题的更多相关文章
- 【应用服务 App Service】发布到Azure上的应用显示时间不是本地时间的问题,修改应用服务的默认时区
问题情形 应用程序发布到App Service后,时间显示不是北京时间,默认情况为UTC时间,比中国时间晚 8 个小时. 详细日志 无 问题原因 Azure 上所有的服务时间都采用了 UTC 时间. ...
- 【应用服务 App Service】Azure 应用服务测试网络访问其他域名及请求超时限制(4分钟 ≈ 230秒)
测试App Service是否可以访问其他DNS 当应用服务(Azure App Service)创建完成后,想通过ping命令来查看是否可以访问其他站点或解析DNS,但是发现ping命令无法使用.这 ...
- 【应用服务 App Service】App Service中抓取网络日志
问题描述 众所周知,Azure App Service是一种PaaS服务,也就是说,IaaS层面的所有内容都由平台维护,所以使用App Service的我们根本无法触碰到远行程序的虚拟机(VM), 所 ...
- 【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))
问题情形 当应用在Azure 应用服务App Service中运行时,有时候出现CPU,Memory很高,但是没有明显的5XX错误和异常日志,有时就是有异常但是也不能明确的指出具体的代码错误.当面临这 ...
- 【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决
问题情形 当访问部署在Azure App Service中的应用返回 "The remote name could not be resolved: ''xxxxxx.com'" ...
- 【应用服务 App Service】Azure App Service 中如何安装mcrypt - PHP
问题描述 Azure App Service (应用服务)如何安装PHP的扩展 mcrypt(mcrypt 是php里面重要的加密支持扩展库) 准备条件 创建App Service, Runtime ...
- 【应用服务 App Service】在Azure App Service中使用WebSocket - PHP的问题 - 如何使用和调用
问题描述 在Azure App Service中,有对.Net,Java的WebSocket支持的示例代码,但是没有成功的PHP代码. 以下的步骤则是如何基于Azure App Service实现PH ...
- 【Azure 应用服务】App Service 无法连接到Azure MySQL服务,报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
问题描述 App Service使用jdbc连接MySQL服务,出现大量的 Communications link failure: com.mysql.cj.jdbc.exceptions.Com ...
- 【应用服务 App Service】当使用EntityFrameWorkCore访问Sql Server数据库时,在Azure App Service会出现Cannot create a DbSet for ** because this type is not included in the model for the context的错误
问题情形 使用EF Core访问数据库,在本地运行正常,发布到App Service后,偶尔出现了Cannot create a DbSet for ** because this type is n ...
随机推荐
- 关于nodejs中的增删改查
1.增加 router.post('/insert',function(req,res){ var name = req.body.name; var num = req.body.num; v ...
- 【总结】redis
一.redis概述 1.nosql概念 NoSql:即Not-onlySQL.非关系型数据库,作为关系型数据库的补充 2.redis概念 redis(remote dictionary server) ...
- LuoguP3615 如厕计划
题面 现有两个厕所,一个女士专用,一个通用,给出\(2*n\)个排成一列的人的性别 每人如厕需要一分钟,假如女厕是空的,女生中最靠前的可以直接进入. 需要通过调换顺序使得所有人都上完厕所最后的时间为n ...
- Luogu P4105 [HEOI2014]南园满地堆轻絮
题解 传送门 其实只要找差距最大的逆序对就好了 答案就是此逆序对的差 /2 代码 (代码很短) #include<bits/stdc++.h> using namespace std; # ...
- python之冒泡排序改进
冒泡排序改进 关注公众号"轻松学编程"了解更多. 一.普通冒泡排序 [22,3,1,6,7,8,2,5] 普通冒泡排序 思路: 第一趟排序 从下标0开始,取出对应的值22 22和3 ...
- CSP-S 2020模拟训练题1-信友队T1 四平方和
题意简述 \(n\)是正整数,其四个最小的因子分别为\(d_1,d_2,d_3,d_4\). 求对于所有的\(n \le m\)满足 \[d_1^2+d_2^2+d_3^2+d_4^2=n \] 的\ ...
- 使用Asponse.Words处理Word模板
一.客户需求 近期接到一个项目,在与客户初步沟通后,客户描述的需求听起来也非常简单,就是目前客户需要在Excel录入数据,然后把这些数据分别复制到多个Word的多个地方,除了单个值之外,还需要复制表格 ...
- P5958 【[POI2017]Sabotaż】
P5958 [[POI2017]Sabotaż] 题意描述 在一棵以1号节点为根节点的树上,有很多纯洁的白点, BUT,突然有一个黑点出现(可能在任意位置) 它要染黑尽可能多的节点,而在一棵子树中, ...
- 835. Image Overlap —— weekly contest 84
Image Overlap Two images A and B are given, represented as binary, square matrices of the same size. ...
- 记elementUI一个大坑
1. 表格中 用v-if 切换不同表字段时 表头字段顺序经常互换 解决方法:在table-column中加入:key="Math.random()"2. v-if控制的el-t ...
