Centos

突然無法通過 ssh 進入 CentOS 8 伺服器,出現錯誤“伺服器拒絕我們的密鑰”

  • July 18, 2021

我有一個 CentOS 8 伺服器,有幾個使用者使用 SSH 密鑰,幾天前我沒有遇到任何使用者登錄的問題。(密碼驗證被禁用,root 登錄也是如此。)

我今天去使用 PuTTY 和 WinSCP 登錄並得到一個不寒而栗:

伺服器拒絕了我們的密鑰

這發生在所有使用者身上。sshd似乎很明顯,因為它已經到了拒絕密鑰的地步。當我探勘日誌時,我看到:

伺服器提供了這些身份驗證方法:publickey、gssapi-keyex、gssapi-with-mic

這表明sshd似乎執行正常。

我嘗試使用Pageant中載入的密鑰登錄,我還嘗試繞過Pageant並直接在PuTTY和WinSCP中載入密鑰,密鑰仍然被拒絕。是的,它是正確的密鑰,並且沒有改變。

我碰巧有一個備份應用程序正在執行,因此我能夠看到伺服器上可能對文件進行了哪些更改。我可以確認.ssh/authorized_keys文件沒有被修改。也沒有sshd_config,我下載並查看了。

我最後一次登錄是幾天前,我做了一個dnf update,但我不明白這會如何影響這一切。

有什麼想法可能導致這種情況嗎?

問題是/home權限。我有一個偷偷摸摸的懷疑,但拒絕接受這個想法,因為我沒有看到問題是如何發生的。當我回憶起記憶時,我隱約記得在處理目錄條目setfacl時輸錯了命令。ACL我不小心做了一個setfacl -Rn [...] /home,弄亂sshd$home/.ssh/authorized_keys.

這意味著所有使用者都被鎖定了。PasswordAuthentication設置為,No無法進入伺服器。那我是怎麼解決的呢?感謝 Acronis 備份。我只是sshd_config從幾個月前恢復到它PasswordAuthentication設置Yes並添加reboot為 postcommand 時。然後,我在伺服器重新啟動後使用密碼登錄,並setfacl -b在正確的位置刪除了 ACL,一切都恢復正常。

有點幸運,但我專門為幾個災難場景配置了備份,其中一個需要很久以前的文件。

PS:友好的建議,現在仔細檢查您的備份策略並投資於可靠的解決方案。如果沒有企業級備份,我會在嘗試將伺服器的硬碟驅動器移動到新伺服器並恢復我的 Web 應用程序,或者嘗試啟動到救援模式或其他一些乏味/不確定的方法時陷入困境。

引用自:https://unix.stackexchange.com/questions/658800