針對通過 SSH 連接到 Azure Linux VM 時發生的失敗、錯誤或被拒絕問題進行故障排除

嘗試連接到 Linux 虛擬機 (VM) 時,有多種原因可能會導致安全外殼 (SSH) 錯誤、SSH 連接失敗或被拒絕。 本文幫助用戶找出原因并更正問題。 可以使用 Azure 門戶、Azure CLI 或適用于 Linux 的 VM 訪問擴展來排查和解決連接問題。

Note

Azure 具有用于創建和處理資源的兩個不同的部署模型:Resource Manager 和經典。 這篇文章介紹了如何使用這兩種模型,但 Azure 建議大多數最新部署使用 Resource Manager 模型。

如果對本文中的任何內容需要更多幫助,可以聯系MSDN Azure 和 Stack Overflow 論壇上的 Azure 專家。 或者,也可以提交 Azure 支持事件。 請轉到Azure 支持站點并選擇“獲取支持”。 有關使用 Azure 支持的信息,請閱讀Azure 支持常見問題

快速故障排除步驟

執行每個故障排除步驟后,請嘗試重新連接到 VM。

重置 SSH 配置。

重置用戶的憑據。

確認網絡安全組規則是否允許 SSH 流量。

確保有一條網絡安全組規則允許 SSH 流量(默認為 TCP 端口 22)。

在不使用 Azure 負載均衡器的情況下無法使用端口重定向/映射。

重啟 VM。

重新部署 VM。

繼續閱讀余下的內容,獲取更詳細的故障排除步驟和說明。

排查 SSH 連接問題的可用方法

可以使用以下方法之一重置憑據或 SSH 配置:

Azure 門戶- 如果需要快速重置 SSH 配置或 SSH 密鑰,并且沒有安裝 Azure 工具,則很適合使用此方法。

Azure CLI 2.0- 如果已打開命令行,則可以快速重置 SSH 配置或憑據。 還可以使用Azure CLI 1.0

Azure VMAccessForLinux 擴展- 創建和重復使用 json 定義文件來重置 SSH 配置或用戶憑據。

在執行每個故障排除步驟之后,請嘗試再次連接到 VM。 如果仍然無法連接,請嘗試下一步。

使用 Azure 門戶

在 Azure 門戶中,可以快速重置 SSH 配置或用戶憑據,無需在本地計算機上安裝任何工具。

在 Azure 門戶中選擇 VM。 向下滾動到“支持 + 故障排除”部分并選擇“重置密碼”,如以下示例中所示:

重置 SSH 配置

第一步是從“模式”下拉菜單中選擇“Reset configuration only”(如上面的屏幕截圖中所示),并單擊“重置”按鈕。 完成此操作后,再次嘗試訪問 VM。

重置用戶的 SSH 憑據

若要重置現有用戶的憑據,請從“模式”下拉菜單中選擇“Reset SSH public key”或“Reset password”,如上面的屏幕截圖中所示。 指定用戶名和 SSH 密鑰或新密碼,然后單擊“重置”按鈕。

還可以通過此菜單在 VM 上創建具有 sudo 權限的用戶。 輸入新用戶名和關聯的密碼或 SSH 密鑰,并單擊“重置”按鈕。

使用 Azure CLI 2.0

安裝最新的Azure CLI 2.0并使用az login登錄到 Azure 帳戶(如果尚未這樣做)。

Note

在 Azure 中國區使用 Azure CLI 2.0 之前,請先運行az cloud set -n AzureChinaCloud來改變云環境。如果想切回國際版 Azure,請再次運行az cloud set -n AzureCloud。

如果創建并上傳了自定義 Linux 磁盤映像,請確保已安裝Azure Linux 代理2.0.5 或更高版本。 在使用庫映像創建的 VM 上,系統已自動安裝并配置了此訪問擴展。

重置用戶的 SSH 憑據

以下示例使用az vm user update,在myResourceGroup中名為myVM的 VM 上, 將myUsername的憑據重置為myPassword中指定的值。 請如下所示使用自己的值:

Azure CLI復制

azvmuserupdate--resource-groupmyResourceGroup--namemyVM \--usernamemyUsername--passwordmyPassword

如果使用 SSH 密鑰身份驗證,可以重置給定用戶的 SSH 密鑰。 以下示例在myResourceGroup中名為myVM的 VM 上,使用az vm access set-linux-user更新存儲在~/.ssh/id_rsa.pub中的用戶名為myUsername的 SSH 密鑰。 請如下所示使用自己的值:

Azure CLI復制

azvmuserupdate--resource-groupmyResourceGroup--namemyVM \--usernamemyUsername--ssh-key-value~/.ssh/id_rsa.pub

使用 VMAccess 擴展

適用于 Linux 的 VM 訪問擴展可以讀入用于定義待執行操作的 json 文件。這些操作包括重置 SSHD、重置 SSH 密鑰或添加用戶。 仍要使用 Azure CLI 調用 VMAccess 擴展,但可以根據需要在多個 VM 上重復使用該 json 文件。 使用這種方法可以創建 json 文件存儲庫,然后,可以在給定的方案中調用這些文件。

重置 SSHD

創建包含以下內容的名為settings.json的文件:

JSON復制

{"reset_ssh":"True"}

使用 Azure CLI,并調用VMAccessForLinux擴展并指定 json 文件來重置 SSHD 連接。 以下示例使用az vm extension set,在myResourceGroup中名為myVM的 VM 上重置 SSHD。 請如下所示使用自己的值:

Azure CLI復制

azvmextensionset--resource-groupphilmea--vm-nameUbuntu \--nameVMAccessForLinux--publisherMicrosoft.OSTCExtensions--version1.2--settingssettings.json

重置用戶的 SSH 憑據

如果 SSHD 看上去運行正常,可以重置給定用戶的憑據。 若要重置用戶的密碼,請創建名為settings.json的文件。 以下示例將myUsername的憑據重置為myPassword中指定的值。 在settings.json文件中使用自己的值輸入以下行:

JSON復制

{"username":"myUsername","password":"myPassword"}

若要重置用戶的 SSH 密鑰,請先創建名為settings.json的文件。 以下示例在myResourceGroup中名為myVM的 VM 上,將myUsername的憑據重置為myPassword中指定的值。 在settings.json文件中使用自己的值輸入以下行:

JSON復制

{"username":"myUsername","ssh_key":"mySSHKey"}

創建 json 文件之后,使用 Azure CLI 調用VMAccessForLinux擴展并指定 json 文件來重置 SSH 用戶憑據。 以下示例重置myResourceGroup中名為myVM的 VM 上的憑據。 請如下所示使用自己的值:

Azure CLI復制

azvmextensionset--resource-groupphilmea--vm-nameUbuntu \--nameVMAccessForLinux--publisherMicrosoft.OSTCExtensions--version1.2--settingssettings.json

使用 Azure CLI 1.0

安裝 Azure CLI 1.0 并連接到 Azure 訂閱(如果尚未這樣做)。 確保按如下所示使用 Resource Manager 模式:

Azure CLI復制

azureconfigmodearm

如果創建并上傳了自定義 Linux 磁盤映像,請確保已安裝Azure Linux 代理2.0.5 或更高版本。 在使用庫映像創建的 VM 上,系統已自動安裝并配置了此訪問擴展。

重置 SSH 配置

SSHD 配置本身可能有誤或服務遇到錯誤。 可以重置 SSHD 以確保 SSH 配置本身是有效的。 要執行的第一個故障排除步驟應該是重置 SSHD。

以下示例重置myResourceGroup資源組中名為myVM的 VM 上的 SSHD。 請使用自己的 VM 和資源組名稱,如下所示:

Azure CLI復制

azurevmreset-access--resource-groupmyResourceGroup--namemyVM \--reset-ssh

重置用戶的 SSH 憑據

如果 SSHD 看上去運行正常,可以重置給定用戶的密碼。 以下示例在myResourceGroup中名為myVM的 VM 上,將myUsername的憑據重置為myPassword中指定的值。 請如下所示使用自己的值:

Azure CLI復制

azurevmreset-access--resource-groupmyResourceGroup--namemyVM \--user-namemyUsername--passwordmyPassword

如果使用 SSH 密鑰身份驗證,可以重置給定用戶的 SSH 密鑰。 以下示例在myResourceGroup中名為myVM的 VM 上,更新~/.ssh/id_rsa.pub中為用戶myUsername存儲的 SSH 密鑰。 請如下所示使用自己的值:

Azure CLI復制

azurevmreset-access--resource-groupmyResourceGroup--namemyVM \--user-namemyUsername--ssh-key-file~/.ssh/id_rsa.pub

重新啟動 VM

如果已重置 SSH 配置和用戶憑據,或者在執行此操作期間遇到錯誤,可以嘗試重新啟動 VM 來解決基本的計算問題。

Azure 門戶

若要使用 Azure 門戶重新啟動 VM,請選擇 VM,然后單擊“重新啟動”按鈕,如以下示例中所示:

Azure CLI 1.0

以下示例重新啟動myResourceGroup資源組中名為myVM的 VM。 請如下所示使用自己的值:

Azure CLI復制

azurevmrestart--resource-groupmyResourceGroup--namemyVM

Azure CLI 2.0

以下示例使用az vm restart重新啟動名為myResourceGroup的資源組中名為myVM的 VM。 請如下所示使用自己的值:

Azure CLI復制

azvmrestart--resource-groupmyResourceGroup--namemyVM

重新部署 VM

可以將 VM 重新部署到 Azure 中的另一個節點,這可能可以更正任何潛在的網絡問題。 有關重新部署 VM 的信息,請參閱將虛擬機重新部署到新的 Azure 節點

Note

完成此操作后,臨時磁盤數據會丟失,并且系統會更新與虛擬機關聯的動態 IP 地址。

Azure 門戶

若要使用 Azure 門戶重新部署 VM,請選擇 VM,然后向下滾動到“支持 + 故障排除”部分。 Click theRedeploybutton as in the following example:

Azure CLI 1.0

以下示例重新部署myResourceGroup資源組中名為myVM的 VM。 請如下所示使用自己的值:

Azure CLI復制

azurevmredeploy--resource-groupmyResourceGroup--namemyVM

Azure CLI 2.0

以下示例使用az vm redeploy重新部署名為myResourceGroup的資源組中名為myVM的 VM。 請如下所示使用自己的值:

Azure CLI復制

azvmredeploy--resource-groupmyResourceGroup--namemyVM

使用經典部署模型創建的 VM

若要解決使用經典部署模型創建的 VM 中最常見的 SSH 連接失敗問題,請嘗試以下步驟。 執行每個步驟后,請嘗試重新連接到 VM。

Azure 門戶重置遠程訪問。 在 Azure 門戶中選擇 VM,然后單擊“重置遠程...”按鈕。

重啟 VM。 在Azure 門戶中選擇 VM,然后單擊“重新啟動”按鈕。

將 VM 重新部署到新的 Azure 節點。 有關如何重新部署 VM 的信息,請參閱將虛擬機重新部署到新的 Azure 節點

完成此操作后,臨時磁盤數據會丟失,并且系統會更新與虛擬機關聯的動態 IP 地址。

按照如何為基于 Linux 的虛擬機重置密碼或 SSH中的說明執行以下操作:

重置密碼或 SSH 密鑰。

創建sudo用戶帳戶。

重置 SSH 配置。

檢查 VM 的資源運行狀況,了解是否存在任何平臺問題。

選擇 VM 并向下滾動到“設置” > “檢查運行狀況”。

其他資源

如果在執行后續步驟之后仍然無法通過 SSH 連接到 VM,請參閱更詳細的故障排除步驟,查看其他可以解決問題的步驟。

有關對應用程序訪問進行故障排除的詳細信息,請參閱對在 Azure 虛擬機上運行的應用程序的訪問進行故障排除

有關對使用經典部署模型創建的虛擬機進行故障排除的詳細信息,請參閱如何為基于 Linux 的虛擬機重置密碼或 SSH

立即訪問http://market.azure.cn

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容