事情發生在前幾天,我閒着無聊經過Windows下的git bash鏈接到服務器,看到好久以前開始就掛在那裏的18.04更新,因而命令行敲下do--release-upgrade,等着服務器慢慢本身跑更新而後去吃飯。吃完飯回來再進行ssh登錄,卻發現鏈接已經被拒絕,試了多臺設備均沒法經過ssh方式登錄服務器。git
以後使用VNC進行登錄——它至關於直接在遠程服務器上鍊接了一臺顯示器,經過顯示器來進行對服務器的操做,能夠直接經過瀏覽器進行訪問。本人測試了macOS下的Safari、Chrome瀏覽器和Windows下的Chrome、360極速瀏覽器,最後發現對騰訊雲的VNC鏈接支持得最好的是Windows下的360極速。基本上命令與顯示之類的都是正常的。算法
找好了可以支持的瀏覽器,就能夠開始debug了。先用sudo service ssh status命令查看服務器的狀態,顯示錯誤——vim
Starting ssh (via systemctl): ssh.serviceJob for ssh.service failed because the control process exited with error code. See "systemctl status ssh.service" and "journalctl -xe" for details. failed!
問題的報錯信息是——瀏覽器
ssh.service: Start request repeated too quickly. ssh.service: Failed with result 'exit-code'. Failed to start OpenBSD Secure Shell server.
而後再輸入/usr/sbin/sshd -T查看狀態,發現是/etc/ssh/sshd_config裏的cipher出現了錯誤。本人在排這一次錯的過程當中耗費時間最多的時候就是在嘗試修改sshd_config配置文件。經過VNC使用vim的體驗糟糕無比,幾乎能夠說是不可用,惟一能夠使用的編輯器實際上是沒怎麼用過的nano。bash
用nano將cipher改爲aes256-cbc,aes192-cbc,aes128-cbc三個以後,從新使用/usr/sbin/sshd -T查看狀態,SSH stopped working due to bad mac spec——此次直接把hmac-ripemd160刪除掉就解決了(猜想是該算法已經再也不使用)。服務器
最後一個問題是Missing privilege separation directory: /run/sshd,這個解決起來最簡單,直接用最基礎的Linux系統操做,cd run而後mkdir sshd就解決了。重啓SSH服務,運行成功,截一張圖來慶祝一下(VNC鏈接服務器的字體至關原始):ssh
經過macOS自帶terminal嘗試鏈接,繼續報錯——Unable to negotiate with IP port 22: no matching cipher found. Their offer: aes256-cbc, aes192-cbc, aes128-cbc。之後鏈接這臺服務器得使用ssh -c aes256-cbc username@IP才能夠進入——意思是強制使用aes256-cbc的加密算法來登錄這臺服務器。編輯器
【2019年7月26日更新】測試
cipher改爲aes256-cbc,aes192-cbc,aes128-cbc以後用ssh是能夠指定加密方式來登錄的,可是Sublime Text 3的SFTP功能不可用(做爲對比,PyCharm以及FileZilla能夠正常使用)。緣由是某些加密算法(如cbc結尾的這三個)是比較老的加密算法,會被客戶端默認拒絕。字體
咱們只須要加上aes128-ctr,aes192-ctr,aes256-ctr三個加密算法以後,客戶端就能夠直接ssh username@IP登錄,Sublime Text 3的SFTP功能也能夠正常使用了。