前言:
Ubuntu默認
是禁止root用戶遠程登陸
本教程解決Ubuntu 18.04
版本 root
用戶 使用ssh
密鑰無法遠程登陸的問題
問題發生的環境:
騰訊雲,重裝Ubuntu服務器時選擇使用ssh密鑰登陸服務器。
問題概括:
重裝完成后默認創建了ubuntu用戶,使用ssh密鑰正常登陸,編輯/etc/ssh/sshd_config文件開啟PermitRootLogin yes並重啟sshd服務,使用Xshell使用root遠程連接失敗,提示“所選的用戶密鑰未在遠程主機上注冊”。
Google搜索問題發現大多數都是類似以下解決方法:
-
sshd_config開啟運行root遠程登陸PermitRootLogin Yes (已配置 但root登陸失敗)
-
root登陸次數太多 賬號被鎖 重置登陸次數 (不是此條原因)
嘗試無果繼續搜索 看到一篇文章提到
配置ssh公鑰到user/.ssh/authorized_keys
這篇文章給了我思路,騰訊雲重裝系統只要勾選使用ssh登陸,就會默認幫我們配置好默認的ubuntu用戶的ssh配置設置,而root用戶因為默認就禁止遠程登陸,那么會不會也因此並沒有配置上ssh公鑰呢。(根據上面的登陸失敗提示 心里想應該八九不離十就是這個原因)
解決思路
使用命令查看authorized_keys
文件的路徑
find -name authorized_keys
發現確實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服務之后問題就解決了。