【應用服務 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地址為 //code.jquery.com/jquery-1.11.0.min.js,經驗證,該地址無法在中國網路正常訪問。

查看錯誤資訊截圖:

中國網路無法訪問:(//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 [email protected] -p 10812

 

 

 

 

參考資料

以交互方式登錄: //docs.azure.cn/zh-cn/cli/authenticate-azure-cli?view=azure-cli-latest
在 Azure 應用服務中打開 Linux 容器的 SSH 會話: //docs.azure.cn/zh-cn/app-service/configure-linux-open-ssh-session#open-ssh-session-in-browser
Nginx的Dockerfile內容://hub.docker.com/layers/nginx/library/nginx/latest/images/sha256-d73056bfea356376bf2464e544cc5508d8670f51b56b17a76638ee5433fb8e9f?context=explore

開啟SSH服務,在自定義鏡像時添加ssh server的部分: //docs.microsoft.com/en-us/azure/app-service/configure-custom-container?pivots=container-linux#enable-ssh

參考微軟官方給出的鏡像進行構建自定義鏡像: //github.com/Azure-App-Service/tomcat/blob/dev/8.5-jre8/Dockerfile