ubuntu無法ssh遠程,提示'Permission denied (publickey)'的解決方法
最近有小伙伴在使用ubuntu遠程的時候一直無法遠程,剛開始以為時openssh的問題,升級完openssh之后,再次遠程時還是提示以下報錯。
原因分析
SSH(Secure Shell)是一種加密的網絡協(xié)議,用于在網絡上安全地傳輸數(shù)據(jù)。它被廣泛用于遠程登錄和執(zhí)行命令。然而,有時候當我們嘗試使用SSH登錄時,可能會遇到錯誤消息Permission denied (publickey)
導致登錄失敗。這種情況可能由多種原因引起。在本文中,我們將探討導致SSH登錄失敗的可能性,并提供解決方案。
1. SSH密鑰不匹配
這是最常見的原因之一。當SSH客戶端嘗試使用公鑰進行身份驗證時,如果公鑰與服務器上的私鑰不匹配,就會導致登錄失敗。為了解決這個問題,您需要確保在服務器上正確配置了公鑰,并且客戶端使用的私鑰與之匹配。
2. SSH密鑰權限不正確
另一個可能性是私鑰文件的權限不正確。私鑰文件應該只能被所有者讀取和寫入,否則SSH客戶端會拒絕使用它進行身份驗證。您可以使用以下命令更改私鑰文件的權限:
chmod 600 ~/.ssh/id_rsa
3. SSH服務配置錯誤
有時候,SSH服務器的配置可能導致登錄失敗。確保SSH服務器配置正確,并且允許使用密碼和公鑰進行身份驗證。您可以檢查SSH服務器的配置文件(通常是/etc/ssh/sshd_config
)并確保以下3個選項被如下正確設置:
PubkeyAuthentication yes # To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) KbdInteractiveAuthentication yes
重啟ssh服務:sudo systemctl restart sshd
4. 公鑰未添加到服務器的authorized_keys文件中
如果您的公鑰未添加到服務器的authorized_keys
文件中,那么SSH服務器將無法驗證您的身份。您可以使用以下命令將本地公鑰添加到服務器的authorized_keys
文件中:
ssh-copy-id ubuntu@10.184.193.115
或,直接copy本地的公鑰到服務器的authorized_keys
文件中,且確保文件權限如下:
-rw------- 1 ubuntu ubuntu 1155 Mar 14 08:51 .ssh/authorized_keys
5. SSH密鑰損壞
最后一種可能性是SSH密鑰本身損壞。如果您懷疑密鑰已損壞,可以嘗試生成一個新的密鑰對,并將公鑰添加到服務器上。
以下命令用于產生密鑰:
解決方法:
1.登錄現(xiàn)在無法ssh遠程的這臺主機,打開sshd的配置文件,找到PasswordAuthentication這行。
vi /etc/ssh/sshd_config
2.將PasswordAuthentication no這行的no改為yes或者直接注釋調這一行(蜜蜂這里就直接注釋了)
3.重啟sshd服務
sudo systemctl restart sshd
4.回到之前的10.42.251.150機器后再次ssh 10.42.251.150此時可以正常連接上了:
總結
到此這篇關于ubuntu無法ssh遠程,提示'Permission denied (publickey)'的解決方法的文章就介紹到這了,更多相關ssh遠程,提示'Permission denied (publickey)'內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
CentOS7.4開機出現(xiàn)welcome to emergency mode的解決方法
CentOS7.4開機出現(xiàn)welcome to emergency mode,報這個錯誤多數(shù)情況下是因為/etc/fstab文件的錯誤。注意一下是不是加載了外部硬盤、存儲器或者是網絡共享空間,在重啟時沒有加載上導致的2018-09-09