題 儘管從“known_hosts”中刪除了指定的密鑰,仍然會出現“ssh失敗:在/ var / lib / sss / pubconf / known_hosts中攻擊RSA密鑰”


我知道有很多次問過類似的問題,但這裡有一點不同:

試著ssh到我得到的服務器:

$ ssh cl11lx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
07:51:03:4e:5e:ba:e8:44:70:77:cb:57:78:57:59:35.
Please contact your system administrator.
Add correct host key in /nethome/ajalali/.ssh/known_hosts to get rid of this message.
Offending RSA key in /var/lib/sss/pubconf/known_hosts:8
  remove with: ssh-keygen -f "/var/lib/sss/pubconf/known_hosts" -R cl11lx
ECDSA host key for cl11lx has changed and you have requested strict checking.
Host key verification failed.

我發現最相關的問題是 這裡,作為副本關閉 這個 它本身作為主題關閉。但無論如何他們都不一樣。問另一個相關問題 這裡

在大多數情況下,正如我們所知,您可以通過替換服務器密鑰來解決問題,例如通過運行:

ssh-keygen -R <host>

但既不是這個解決方案,也不是從文件中刪除違規密鑰 /var/lib/sss/pubconf/known_hosts 確實解決了我的問題。

只要刪除整個文件,或刪除有問題的密鑰,密鑰就會恢復。

請注意,我的所有系統都是freeipa服務器的成員,後者本身就是後端的LDAP / Kerberos。


5
2018-04-29 09:18


起源


我已經改寫了標題,所以更深層次的問題更清晰。有一個關鍵的不匹配是一個常見的問題,但如果你認為你已經刪除了有問題的密鑰,它仍然會顯示出來。這就是這個問題的重點。 - JakeGould


答案:


如在發布的日誌中所見,違規密鑰不在其正常位置,即 $HOME/.ssh/known_hosts,但它位於 /var/lib/sss/pubconf/known_hosts。這表明 系統安全服務守護程序 又名 SSSD 從另一個來源獲取違規密鑰。

這就是從文件中刪除密鑰無效的原因,因為它一次又一次地從服務器中重新獲取。

在這種情況下,服務器是 免費-IPA 服務器。因此要解決問題,由發送的違規密鑰 IPA 服務器必須改變。

這可以通過手動更改服務器上的密鑰,或完全從服務器中刪除主機信息,並安裝客戶端(通過 ipa-client-install)再次。

我的問題發生在客戶端上重新安裝操作系統之後。因此,從服務器中刪除主機信息並再次安裝ipa客戶端是一個明智的選擇。


8
2018-04-29 09:27