最近我在从Jenkins管道到另一台远程服务器执行ssh时遇到错误。我忘了保存所有日志,但这是其中的一部分
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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)!
在错误日志中,建议您运行此命令来对其进行修复
sudo ssh-keygen -f "/var/lib/jenkins/.ssh/known_hosts" -R "<<remote ssh ip>>"
所以我跑了。
以前,某些远程ssh命令会在返回错误之前运行。 但是现在看来根本无法连接到远程服务器,远程ssh命令从一开始就失败了。
Failed to add the host to the list of known hosts (/var/lib/jenkins/.ssh/known_hosts).
从How can I get rid of " WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!"起,我尝试运行ssh-keygen -R <<remote ssh ip>>
,但错误仍然出现。
如何恢复已删除的行?或重新创建一个?
答案 0 :(得分:0)
首先,您必须先了解该消息的含义,然后再“摆脱它”。
该消息表示目标服务器已更改其身份,或者某人正在像您这样入侵中间人,而您尝试访问的服务器不是您认为的服务器。
因此,首先您必须确保没有发生中间人入侵。
然后,进入known_hosts
文件,并删除与要连接的服务器所在的行。
保存后,系统会询问您是否要信任服务器,而不仅仅是信任与未知主机的连接。