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

求助:Atlassian Pipelines部署时Host key验证失败问题

问题解决:Atlassian Pipelines SCP部署出现Host key verification failed错误

错误Host key verification failed的本质是Bitbucket Pipelines运行环境未信任目标QA服务器的SSH主机密钥,导致连接被拒绝。以下是具体排查和解决步骤:


1. 手动注入目标服务器的主机密钥

在本地终端执行命令,获取目标服务器的主机密钥(替换为你的服务器IP/域名):

ssh-keyscan -H your-qa-server-ip-or-domain

会输出类似内容:

#your-qa-server-ip-or-domain:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
your-qa-server-ip-or-domain ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD...

将这段完整输出添加到scp-deploy pipe的KNOWN_HOSTS变量中:

pipe: atlassian/scp-deploy:1.4.1
variables:
  USER: ${QA_SERVER_USER}  # 建议重命名变量,避免与系统变量冲突
  SERVER: ${QA_SERVER_HOST}
  REMOTE_PATH: '/home/myuser/'
  LOCAL_PATH: './MyApp.jar'
  KNOWN_HOSTS: |
    #your-qa-server-ip-or-domain:22 SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5
    your-qa-server-ip-or-domain ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD...

2. 检查SSH密钥配置

  • 确认仓库admin/pipelines/ssh-keys页面粘贴的私钥完整:必须包含-----BEGIN RSA PRIVATE KEY-----开头和-----END RSA PRIVATE KEY-----结尾,中间内容无换行丢失或多余空格。
  • 验证目标服务器的/home/myuser/.ssh/authorized_keys文件已添加对应公钥,且文件权限为600,.ssh目录权限为700。

3. 验证变量加载正确性

在Deploy步骤的script中添加变量打印,确认配置的服务器信息已正确加载:

script:
  - echo "Server: ${QA_SERVER_HOST}, User: ${QA_SERVER_USER}"
  - ls -R $BITBUCKET_CLONE_DIR
  - pipe: atlassian/scp-deploy:1.4.1
    ...

4. 检查目标目录权限

用相同的SSH私钥和用户登录目标服务器,执行touch /home/myuser/test.txt,确认该用户对/home/myuser/目录有写入权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 03:23:36