张家口市网站建设_网站建设公司_页面权重_seo优化
2026/1/13 21:55:36 网站建设 项目流程

在用ssh操作远程服务器时,报host key verification fail

这个报错是SSH 主机密钥验证失败导致的(Host key verification failed),是 Linux 下 SSH/SCP 首次连接目标服务器时的安全验证机制触发的问题

解决步骤:

方法 1:手动验证主机密钥(临时解决)

在 Jenkins 服务器上(切换到 Jenkins 运行用户,如jenkins),手动执行一次ssh连接生产服务器,完成密钥验证:

bash

运行

# 切换到jenkins用户 su - jenkins # 连接生产服务器(替换为实际IP) ssh root@生产服务器IP

首次连接会提示:

plaintext

The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established. ECDSA key fingerprint is SHA256:xxxxxx. Are you sure you want to continue connectin

输入yes并回车,密钥会被保存到~/.ssh/known_hosts中,之后 SCP 就不会再报这个错误

方法 2:在 SCP 命令中跳过主机密钥验证(不推荐,安全性低)

如果是自动化场景无法手动交互,可以在 SCP 命令中添加-o StrictHostKeyChecking=no参数跳过验证:

bash

运行

# 示例SCP命令(添加参数) scp -o StrictHostKeyChecking=no /本地jar包路径 root@生产服务器IP:/目标路径
方法 3:提前将生产服务器密钥写入known_hosts(推荐,自动化友好)

在 Jenkins 的 Shell 构建步骤中,先执行密钥验证命令,再执行 SCP:

bash

运行

# 先验证生产服务器密钥(自动写入known_hosts) ssh-keyscan -H 生产服务器IP >> ~/.ssh/known_hosts # 再执行SCP上传 scp /本地jar包路径 root@生产服务器IP:/目标路径

关键说明:

  • 核心原因是 Jenkins 运行用户(如jenkins)的~/.ssh/known_hosts中没有生产服务器的主机密钥,导致 SSH/SCP 拒绝连接;
  • 方法 1 是最安全的方式,方法 3 适合自动化脚本,方法 2 安全性较低(不建议生产环境用)。

执行上述操作后,重新构建即可解决Host key verification failed的问题。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询