ssh登錄之忽略known_hosts文件


        今天在開發導游項目的時候遇到一個問題,在臨下班的時候,我准備把所有代碼都push一下,准備回家,結果發現用 tortoisegit 死活不讓 push , pull 也報錯, tortoisegit 報的錯也看不出到底是哪里出了錯,呵呵噠。

        無奈之下,換了 git 命令行,然后就給我來了類似這么一段(網上找的,因為當時我並沒有保存)提示:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is36:68:a6:e6:43:34:6b:82:d7:f4:df:1f:c2:e7:37:cc.
Please contact your system administrator.
Add correct host key in /u/xlian008/.ssh/known_hosts to get rid of this message.
Offending key in /u/xlian008/.ssh/known_hosts:2RSA host key for 135.1.35.130 has changed and you have requested strict checking.Host key verification failed.

  最后我的代碼也沒能提交成功,很是郁悶。

  然后回到家,百度之,找到了問題之所在:

  ssh會把你每個你訪問過計算機的公鑰(public key)都記錄在~/.ssh/known_hosts。當下次訪問相同計算機時,OpenSSH會核對公鑰。如果公鑰不同,OpenSSH會發出警告, 避免你受到DNS Hijack之類的攻擊。

  原因:一台主機上有多個Linux系統,會經常切換,那么這些系統使用同一ip,登錄過一次后就會把ssh信息記錄在本地的~/.ssh/known_hsots文件中,切換該系統后再用ssh訪問這台主機就會出現沖突警告,需要手動刪除修改known_hsots里面的內容。

  可是我也沒切換系統啊,好吧,不管了,網頁上給出了兩個解決方法:

  1.手動刪除修改known_hsots里面的內容;
  2.修改配置文件“~/.ssh/config”,加上這兩行,重啟服務器。

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

  試了一下,第一個方法不太好使,於是只能轉向第二個方法,加上之后,好了。

  優缺點:

  1.需要每次手動刪除文件內容,一些自動化腳本的無法運行(在 ssh 登陸時失敗),但是安全性高;
  2.ssh 登陸時會忽略 known_hsots 的訪問,但是安全性低;
  以上的方法可能不太安全,但是只能先這樣了,要不然我代碼都push不了了。

 

文章來源:http://www.tuicool.com/articles/Z7B3MjB


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM