每次尝试连接到服务器时,我都会收到来自SSH客户端的下一条消息:
无法确定主机"XXX"的真实性。ECDSA密钥指纹是SHA256:。。。您确定要继续连接吗(是/否/[指纹](?
我知道这条消息应该只是我第一次连接,而不是每次连接。为什么会发生这种情况?
这是否意味着这是一份自签名证书?
祝你今天过得愉快!
您可以尝试以下几种方法:
-
确保~/.ssh/nknown_hosts是可写的。因为系统将尝试将主机密钥添加到此文件中。
-
根据您的ssh客户端,您可以在命令行上将StrictHostKeyChecking选项设置为no,和/或将密钥发送到一个空的known_hosts文件。您也可以在配置文件中为所有主机或给定的一组IP地址或主机名设置这些选项。
ssh-o UserKnownHostsFile=/dev/null-o StrictHostKeyChecking=no
这个选项不是很安全,因为它可能会打开中间人的攻击。做这件事之前请仔细考虑。
https://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html
- [NOT SECURE]另一种方法是除了使用"StrictHostKeyChecking"之外,还使用"BatchMode"。这样,您的脚本将接受一个新的主机名并将其写入known_hosts文件,但不需要是/否干预
ssh-o BatchMode=yes-o StrictHostKeyChecking=nouser@server.example.com"正常运行时间">