SSH连接远程服务器,本地known_hosts文件记录了什么
今天工作時,使用ssh命令遠(yuǎn)程連接公司的本地服務(wù)器時,突然出現(xiàn)以下錯誤
bash-3.2$ ssh?argus@192.168.200.8?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 SHA256:piV54ayBCWv3VIlEVdFSjY2LHJlut5hNTWZi7X0u06A.?
Please contact your system administrator.?
Add correct host key in /Users/fantingsheng/.ssh/known_hosts to get rid of this message.?
Offending ECDSA key in /Users/fantingsheng/.ssh/known_hosts:143 ECDSA host key for 192.168.200.8 has changed and you have requested strict checking.?
Host key verification failed.
一開始懷疑是服務(wù)器IP換了,于是問同事,同事檢查了下服務(wù)器的IP還是?192.168.200.8,并沒有變;另外用戶名密碼也沒有錯。
這就奇怪了???
根據(jù)錯誤信息WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!去搜才找到解決辦法
首先進(jìn)入known_hosts文件,編輯
vi ~/.ssh/known_hosts
找到以上IP的這行,刪除后,保存
192.168.200.8 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAqhdyk1HyQKn9nB+Pfh+Hf07vbRaD01E8SqTT57AAjm95KKXkfB3rjvAlSH5eTT160WmwNVcS7SSrJWYFX27YI=
也可以使用如下命令刪除
ssh-keygen -R "192.168.200.8"
然后重新執(zhí)行ssh命令
bash-3.2$ ssh?argus@192.168.200.8
The authenticity of host '192.168.200.8 (192.168.200.8)' can't be established. ECDSA key fingerprint is SHA256:piV54ayBCWv3VIlEVdFSjY2LHJlut5hNTWZi7X0u06A. Are you sure you want to continue connecting (yes/no/[fingerprint])?
輸入?yes,?回車,輸入密碼成功登陸
雖然問題解決了,但還是懵逼狀態(tài),為什么IP和用戶名,密碼都沒有變了,就不行了。后來追問同事才知道,他前幾天給服務(wù)器重裝了系統(tǒng)。
問題應(yīng)該出在這
于是懷疑重裝系統(tǒng)導(dǎo)致IP后面這一串字符發(fā)生了變化,不能識別到原來的主機(jī)了
有了線索,繼續(xù)往下追
known_hosts文件用于驗證遠(yuǎn)程登陸系統(tǒng)的身份。ssh可以自動將密鑰添加到用戶文件,也可以手動添加。該文件包含用戶已連接過所有主機(jī)的公共密鑰列表。一般,初次登陸,ssh會自動將遠(yuǎn)程主機(jī)的公鑰添加到用戶的known_hosts文件。
格式有兩種,取決于你的~/.ssh/config文件中的HashKnownHosts No設(shè)置,有可能是一段哈希字符串,格式如下:
KnbIIJIPrL/1p7ofUV74sK+j/Gc=|wrjOFnPgoF0afgH0PeRtRqSdgvc= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
這些文件中的每一行都包含以下字段:標(biāo)記 (可選),主機(jī)名,位,指數(shù),模數(shù),注釋。字段直接用空格隔開。
或者主機(jī)名可以以哈希加密形式存儲,這樣可以隱藏主機(jī)名稱和IP地址對外暴露。?哈希過的主機(jī)名以”?|”字符開頭。每一單行上只能允許一個哈希主機(jī)名出現(xiàn),并且上述否定或通配符操作都不適用。
另外一種格式是上面以IP開頭的那種格式,包含主機(jī)名(可選,取決于是否設(shè)置別名),主機(jī)IP,隨機(jī)產(chǎn)生的加密鹽,采用SHA-1加密的IP信息及該主機(jī)的公鑰,字段直接以空格分開。
Reference:
https://en.wikibooks.org/wiki/OpenSSH/Client_Configuration_Files
總結(jié)
以上是生活随笔為你收集整理的SSH连接远程服务器,本地known_hosts文件记录了什么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用python给PDF文件加水印
- 下一篇: “全人类的知识宝藏”维基百科迎来了20岁