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
sshd_config開啓運行root遠程登錄PermitRootLogin Yes (已配置 但root登錄失敗)code
root登錄次數太多 帳號被鎖 重置登錄次數 (不是此條緣由)blog
嘗試無果繼續搜索 看到一篇文章提到教程
配置ssh公鑰到user/.ssh/authorized_keysget
這篇文章給了我思路,騰訊雲重裝系統只要勾選使用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服務以後問題就解決了。