Ubuntu 18.04 root 使用ssh密鑰遠程登錄

前言:

Ubuntu默認是禁止root用戶遠程登錄shell

本教程解決Ubuntu 18.04版本 root用戶 使用ssh密鑰沒法遠程登錄的問題ubuntu

問題發生的環境:

騰訊雲,重裝Ubuntu服務器時選擇使用ssh密鑰登錄服務器。服務器

問題歸納:

重裝完成後默認建立了ubuntu用戶,使用ssh密鑰正常登錄,編輯/etc/ssh/sshd_config文件開啓PermitRootLogin yes並重啓sshd服務,使用Xshell使用root遠程鏈接失敗,提示「所選的用戶密鑰未在遠程主機上註冊」。ssh

Google搜索問題發現大多數都是相似如下解決方法:rest

  1. sshd_config開啓運行root遠程登錄PermitRootLogin Yes (已配置 但root登錄失敗)code

  2. root登錄次數太多 帳號被鎖 重置登錄次數 (不是此條緣由)blog

    嘗試無果繼續搜索 看到一篇文章提到教程

    配置ssh公鑰到user/.ssh/authorized_keysget

    https://www.jianshu.com/p/7cd6f8102816?utm_campaignit

這篇文章給了我思路,騰訊雲重裝系統只要勾選使用ssh登錄,就會默認幫咱們配置好默認的ubuntu用戶的ssh配置設置,而root用戶由於默認就禁止遠程登錄,那麼會不會也所以並無配置上ssh公鑰呢。(根據上面的登錄失敗提示 內心想應該八九不離十就是這個緣由)

解決思路

使用命令查看authorized_keys文件的路徑

find -name authorized_keys

img

發現確實root和ubuntu用戶分別對應一個authorized_key文件

對比查看兩個authorized_keys文件發現問題所在,ubuntu用戶加載了正確的ssh公鑰,而root用戶下的authorized_keys文件內容則爲空。知道問題所在就好解決了

解決步驟

使用命令移動到ubuntu用戶下的authorized_keys文件所在目錄

cd /home/ubuntu/.ssh/

拷貝authorized_keys文件覆蓋root用戶下.authorized_keys文件

cp -i authorized_keys /root/.ssh/

sudo service ssh restart

重啓ssh服務以後問題就解決了。

相關文章
相關標籤/搜索