解決阿里雲、騰訊雲等升級ubuntu系統版本後ssh沒法鏈接的問題

Ubuntu 18.04出來已經有一段時間了(18.10都出來了),國內的雲廠商裏面,阿里雲已經有了18.04的鏡像,騰訊雲目前尚未。你們手頭16.04的服務器,是否已經有了升級的計劃呢?ubuntu

目前版本的Ubuntu提供了很是方便的升級方法,不須要備份數據,能夠直接升級,具體的方法是,ssh鏈接到服務器後,執行:服務器

sudo do-release-upgrade
複製代碼

執行這一命令後,根據網絡狀況,可能須要等待一段時間才能開始交互式操做。過程當中會有不少選項,通常來講選擇默認設置(一路回車)就能夠。網絡

更新完以後(大概要十幾分鍾),會提示須要重啓系統。等待重啓完成後,再嘗試ssh鏈接上去,會發現:ssh

連不上了!阿里雲

怎麼解決呢?spa

TL;DR: 卸載重裝openssh-server,而後重啓ssh服務3d

下面詳細進行介紹rest

準備工做

  1. 首先,你須要有這臺服務器的管理權限(不是sudo權限,是雲服務器廠商那裏的帳號管理權限)
  2. 以後,你須要利用VNC方式登陸服務器
    阿里雲-遠程鏈接
    騰訊雲-登陸

騰訊雲-默認爲ssh登陸,咱們這裏須要使用vnc

騰訊雲-vnc登陸

可能的問題

這種登陸方式沒法使用PEM密鑰,只能用帳號密碼,因此若是原來服務器的配置是沒有密碼的,就須要臨時設置一下密碼code

騰訊雲-重置密碼

關鍵步驟

成功登陸到服務器,見到熟悉的終端界面以後咱們就能夠開始解決ssh的問題了。cdn

首先嚐試直接重啓ssh服務

sudo service ssh restart
複製代碼

通常來講是會失敗的(我試了幾回都如此)。那麼,正確的解決辦法是什麼呢?

sudo apt remove openssh-server
sudo apt install openssh-server
複製代碼

卸載重裝openssh-server,注意在從新安裝後會讓你選擇是保留本地配置仍是用新配置覆蓋本地配置,這裏選擇用新配置進行覆蓋。

以後,再啓動ssh服務就一切OK了。

sudo service ssh start
複製代碼

嘗試一下從本地ssh登陸到服務器,應該沒有問題了。這樣,你就完成了服務器從16.04升級到18.04的工做。

掃尾工做

把以前臨時設置的密碼清除掉

以zhangsan用戶爲例

sudo passwd -l zhangsan
複製代碼

這樣就把剛纔臨時設置的密碼給清除掉了。

問題分析

上面的操做步驟能夠解決升級ubuntu致使的ssh沒法登錄問題,那麼問題的緣由出在哪裏呢?

推測1:升級方式

實際上,在使用do-release-upgrade進行升級時,是有相關的提示的

(大意)不建議使用ssh方式升級系統,若是升級出現問題,將致使ssh沒法鏈接

因此,若是有條件的話,能夠直接用vnc方式遠程鏈接而後進行系統升級。

推測2:ssh配置文件

在更新過程當中,有一次是提示選擇是否更新ssh配置文件,默認選項是不更新(使用本地原有的文件)。考慮到後來的解決辦法裏是從新安裝openssh-server而後覆蓋本地的配置文件,有可能在這一步中選擇覆蓋本地配置文件的話,就不會出現ssh沒法鏈接的問題。因爲沒有嘗試過,這裏我沒法給出肯定的結論。

相關文章
相關標籤/搜索