You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins执行Shell脚本迁移文件至AWS远程服务器报错求助

问题解决:Jenkins执行rsync时Host key verification failed错误

核心原因

Jenkins默认以jenkins系统用户运行,而你在终端执行脚本用的是自己的登录用户(比如root/普通用户),二者的SSH配置目录(~/.ssh)完全独立,导致Jenkins用户没有缓存远程AWS服务器的主机密钥,也没有对应的登录密钥。

解决步骤

  1. 切换到Jenkins系统用户
    执行命令切换到Jenkins用户的环境:

    sudo su - jenkins
    

    (注意带-,确保进入Jenkins用户的家目录)

  2. 手动验证远程主机密钥
    执行一次SSH连接到AWS服务器,确认并缓存主机密钥:

    ssh 你的AWS服务器用户名@服务器IP/域名
    

    当提示Are you sure you want to continue connecting (yes/no/[fingerprint])?时,输入yes回车,完成主机密钥缓存。

  3. 配置Jenkins用户的SSH登录密钥
    如果你的脚本用密钥登录AWS服务器,需要把私钥复制到Jenkins用户的.ssh目录,并设置正确权限:

    # 复制私钥到Jenkins用户目录(替换为你的私钥路径)
    cp /path/to/your/private-key ~/.ssh/id_rsa
    # 设置权限(必须严格,否则SSH会拒绝使用)
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa
    
  4. 测试rsync命令
    在Jenkins用户环境下,直接执行脚本中的rsync命令,确认能正常运行:

    rsync -avz /var/lib/jenkins/workspace/axxxxxxg.co.uk/ 你的AWS服务器用户名@服务器IP:/目标路径/
    
  5. 应急方案(不推荐,安全性低)
    如果暂时无法手动缓存主机密钥,可以在rsync命令中添加跳过主机验证的参数:

    rsync -avz -e "ssh -o StrictHostKeyChecking=no" /源路径/ 你的AWS服务器用户名@服务器IP:/目标路径/
    

内容的提问来源于stack exchange,提问作者Niranjaysingh Rajput

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 14:27:48