2011-12-28 277 views
60

我無法ssh和rysnc到遠程系統。它不斷給這個錯誤信息:Ubuntu的SSH - - 警告:遠程主機標識已更改

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 RSA key sent by the remote host is 
a3:8f:7c:07:c9:12:d8:aa:cd:c2:ba:b3:27:68:bc:c2. 
Please contact your system administrator. 
Add correct host key in /root/.ssh/known_hosts to get rid of this message. 
Offending RSA key in /root/.ssh/known_hosts:8 
RSA host key for xxx.xxx.xxx.xxx has changed and you have requested strict checking. 
Host key verification failed. 
rsync: connection unexpectedly closed (0 bytes received so far) [sender] 
rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.8] 

我從/home/user/.ssh刪除authorized_keys文件。

+0

同時請參閱rsync的錯誤信息, 的ssh:連接到主機xxx.xxx.xxx.xxx端口22:連接被拒絕 rsync:連接意外關閉(目前收到0字節)[發件人] rsync錯誤:無法解釋的錯誤(代碼255)在io.c(601)[sender = 3.0.8] – thiyagu114 2011-12-28 09:31:21

+0

如果它不是生產系統,那麼你可以做truncate -s 0 /root/.ssh/known_hosts – AMB 2015-07-09 16:11:44

+0

https://in.godaddy.com/help/ssh-login-warning-remote-host-identification-has-changed-12161 – NandhaKumar 2017-12-15 12:44:30

回答

63

消息說「/root/.ssh/known_hosts」not authorized_keys。 刪除該文件(或至少相應的鍵),你可以再次去!但請注意:鑰匙改變必須有一個原因。系統是否重新安裝?確保你檢查或者ssh的全部想法是無效的。

順便說一句:是否有你的SSH作爲根的原因?

+0

刪除相應的key'''$ ssh-keygen -R {server.name.com}'''| '''$ ssh-keygen -R {ssh.server.ip.address}'''| '''$ ssh-keygen -R server.example.com''' – DaddyMoe 2015-10-09 11:39:29

+0

@Nikodemus嘿,當我刪除'ssh-keygen -f「/root/.ssh/known_hosts」-R instance_ip'它現在顯示錯誤'拒絕許可(publickey,gssapi-keyex,gssapi-with-mic)。「我應該如何處理它? – awhitesong 2016-03-21 13:39:32

20

消息並交待:

  • 遠程主機標識本身與該主機的鍵的鍵
  • 你以前的副本不同的是
  • 所以有機會的話,遠程主機是不是他們說他們是誰

如果您信任的遠程主機,您可以從您/root/.ssh/known_hosts和SSH會要求你刪除線8,如果它可以添加新鍵下一次嘗試連接

如果您不信任遠程主機,則必須聯繫主機管理員以確定它們是否以及爲什麼更改了ssh密鑰。如果他們沒有這意味着你的流量被截取

在另一方面,如果你真的信任遠程主機(例如,它是在Intranet),你可以用

-oBatchMode=yes -oStrictHostKeyChecking=no 
6

運行ssh只是這樣做:

mv .ssh/known_hosts .ssh/known_hosts_old 
+1

迄今爲止最好的答案! – Jim 2014-02-27 18:05:35

+12

當問題只是單個主機時,沒有理由刪除整個文件。 – Jian 2014-05-07 05:53:12

+2

這似乎是一個不明智的事情,建議不熟悉ssh和主機密鑰如何工作的人。你能否在你的答案中增加更多的細節來解釋這樣做的含義? – 2014-11-30 15:19:43

120

使用以下命令從的.ssh刪除舊的鍵/ known_hosts文件

ssh-keygen -R <host> 
+4

如果谷歌在這裏發送給你,在尋找關於你爲什麼突然無法訪問你的流浪者箱子的答案時,這個答案最有幫助。當啓動一個新的不同的流浪盒時,該框可能會生成一個新的rsa-key,它與以前爲同一本地主機註冊的rsa-key不同。 如果是這種情況,你可以相信這種改變只是一個麻煩,你可以刪除舊的無效密鑰 – andkrup 2015-03-10 13:44:55

+1

不只是對於流浪者,如果你重新安裝你的機器,密鑰將會改變。這似乎是最乾淨和最安全的解決方案。 – 2015-03-20 21:06:26

+0

任何想法如果這不起作用嘗試什麼?! – Stefan 2015-05-22 06:39:19

11

您可以使用SED從您known_hosts文件中刪除在行8違規鍵:

sed -i -e 8d /root/.ssh/known_hosts 
+0

是的,這:爲我做的! :-) sed -i -e 36d known_hosts – Darby 2015-06-11 02:59:14

+0

對我很好 – 2015-07-22 20:03:52