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
sudo
權限,是雲服務器廠商那裏的帳號管理權限)這種登陸方式沒法使用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沒法登錄問題,那麼問題的緣由出在哪裏呢?
實際上,在使用do-release-upgrade
進行升級時,是有相關的提示的
(大意)不建議使用ssh方式升級系統,若是升級出現問題,將致使ssh沒法鏈接
因此,若是有條件的話,能夠直接用vnc方式遠程鏈接而後進行系統升級。
在更新過程當中,有一次是提示選擇是否更新ssh配置文件,默認選項是不更新(使用本地原有的文件)。考慮到後來的解決辦法裏是從新安裝openssh-server
而後覆蓋本地的配置文件,有可能在這一步中選擇覆蓋本地配置文件的話,就不會出現ssh沒法鏈接的問題。因爲沒有嘗試過,這裏我沒法給出肯定的結論。