意外删除known_hosts文件后出现Curl错误60

意外删除known_hosts文件后出现Curl错误60

我有几个 Raspberry Pie,它们使用 bash shell 脚本将网络摄像头图像上传到网络主机。

这是上传代码,每个 Pi 上的代码都是相同的:

        curl -s -S -u myname: \
        --connect-timeout 25 \
        --max-time 40 \
        --retry 3 \
        --pubkey ~/.ssh/id_rsa.pub \
        -T $file $host >> $log 2>&1

主机是:sftp://ftp.mydomain.com/~/public_html/

几年来,这在两个 Pie 上都运行良好。

我最近胖手指覆盖了其中一个 Pies 上的 ~/.ssh/known_hosts 文件。这立即导致了curl错误60:

curl: (60) SSL peer certificate or SSH remote key was not OK
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

我创建了一个新的、空的 known_hosts 文件,并使用命令行上的 ssh 从损坏的 Pi 登录到 Web 主机。一切正常。无需密码。

不幸的是,我能弄清楚如何解决卷曲问题的唯一方法是使用卷曲不安全选项(-k)。

另一个使用相同代码的 Pi 在没有不安全选项的情况下继续正常工作。

由于我没有对损坏的 Pi 或主机上的证书进行任何更改,因此我无法弄清楚这里发生了什么。

谁能解释一下,以便我可以以不那么不安全的方式解决这个问题?

=====

编辑:这是known_hosts 文件如何被覆盖的。我在 systemd 反向 SSH 隧道服务的状态日志中收到以下错误消息:

Mar 24 11:43:30 raspcondo ssh[946]: Offending ECDSA key in /home/pi/.ssh/known_h
Mar 24 11:43:30 raspcondo ssh[946]:   remove with:
Mar 24 11:43:30 raspcondo ssh[946]:   ssh-keygen -f "/home/pi/.ssh/known_hosts" 

当然,这些指令是错误的(我假设它们被截断),因为它们导致known_hosts被新的私钥覆盖。它应该是这样的:

ssh-keygen -f "/home/pi/.ssh/known_hosts" -R "host"

答案1

从其他相同的 Pi 中复制丢失的文件。看看是否有效

相关内容