Host key verification failed 問題解決


shell中用sftp連接報錯,發現是校驗證書的,可以先手動連接一下。
在當前用戶目錄下的./ssh里面會生成一個秘鑰。這樣下次就會不校驗直接可以登錄了。

在這里插入圖片描述

cd: Fatal error: Host key verification failed.
ls: ls -l: Fatal error: Host key verification failed.
cd: Fatal error: Host key verification failed.
File name missed. Try `help mget’ for more information.

在這里插入圖片描述
還有一種方式:
設置初次ssh登錄linux的時候無需yes確認登陸
第一次登錄另外一台linux主機的時候,會彈出下面的信息,問是否yes確認登陸和no
[root@ghs ~]# ssh -i 2 192.168.1.201 The authenticity of host ‘192.168.1.201 (192.168.1.201)’ can’t be established.
ECDSA key fingerprint is 3f:80:ce:88:9c:b9:72:f1:26:71:d0:8e:a4:91:e0:01.
Are you sure you want to continue connecting (yes/no)

如果,我們輸入yes,就能正常登錄。但如果是分發文件的時候,幾十台服務器,我們就得不停的輸yes,這樣很費時間和人力,我們也可以寫expect腳本代替執行輸入yes,其實還有更簡單的方法,輸入下面這條命令就可以省去很多事情,也不用專門去寫腳本

[root@ghs ~]# echo “StrictHostKeyChecking no” >~/.ssh/config
此時,ssh登錄遠程任意機器都不會問你yes or no.

補充知識
用OpenSSH的人都知ssh會把你每個你訪問過計算機的公鑰(public key)都記錄在~/.ssh/known_hosts。當下次訪問相同計算機時,OpenSSH會核對公鑰。如果公鑰不同,OpenSSH會發出警告,避免你受到DNS Hijack之類的攻擊。
SSH對主機的public_key的檢查等級是根據`StrictHostKeyChecking變量來配置的。默認情況下,``StrictHostKeyChecking=ask。簡單所下它的三種配置值:

1.``StrictHostKeyChecking=no

最不安全的級別,當然也沒有那么多煩人的提示了,相對安全的內網時建議使用。如果連接server的key在本地不存在,那么就自動添加到文件中(默認是known_hosts),並且給出一個警告。
2.``StrictHostKeyChecking=ask #默認的級別,就是出現剛才的提示了。如果連接和key不匹配,給出提示,並拒絕登錄。

3.``StrictHostKeyChecking=yes #`最安全的級別,如果連接與key不匹配,就拒絕連接,不會提示詳細信息。

我一般是用方法2解決

-------------
解決方法 1
-------------

對於我來說,在內網的進行的一些測試,為了方便,選擇最低的安全級別。在.ssh/config(或者/etc/ssh/ssh_config)中配置:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

(注:這里為了簡便,將knownhostfile設為/dev/null,就不保存在known_hosts中了)

---------------
解決方法 2
---------------
vi ~/.ssh/known_hosts

刪除對應ip的相關rsa信息(這是電腦上的文件,不在服務器)

---------------
解決方法 3
---------------
rm known_hosts(這是電腦上的文件,不在服務器)
————————————————
版權聲明:本文為CSDN博主「雲浩舟」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/ooooooobh/article/details/111605668


免責聲明!

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



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