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

BitBucket Pipeline与DO云服务器SSH-1密钥弃用问题求助

问题解决:Ubuntu 24.04下Bitbucket Pipelines合规密钥部署方案

错误原因拆解

  1. ssh-rsa签名被拒绝:Ubuntu 24.04 LTS默认禁用了基于SHA-1的ssh-rsa签名算法,Bitbucket自动生成的RSA密钥或旧版PuTTYgen生成的RSA密钥默认使用该算法,因此被服务器拒绝,对应日志userauth_pubkey: signature algorithm ssh-rsa not in PubkeyAcceptedAlgorithms。
  2. ssh_askpass错误:Bitbucket Pipelines是自动化非交互式环境,即使密钥无密码,若ssh命令未明确禁用交互模式,仍会尝试调用密码弹窗工具导致报错。

正确合规解决方案

1. 生成安全的ED25519密钥对

ED25519是当前推荐的高安全密钥算法,完全规避SHA-1风险:

  • 用PuTTYgen生成:
    • 打开PuTTYgen v0.82,密钥类型选择「Ed25519」
    • 点击「Generate」,移动鼠标生成密钥,不要设置密码短语(自动化环境无需交互验证)
    • 复制以ssh-ed25519开头的完整公钥内容;私钥需转换为OpenSSH格式:Conversions > Export OpenSSH key,保存为无密码文件后复制内容
  • 用OpenSSH命令生成(本地有OpenSSH环境时):
    ssh-keygen -t ed25519 -C "bitbucket-pipelines-deploy" -N ""
    
    生成的公钥在~/.ssh/id_ed25519.pub,私钥在~/.ssh/id_ed25519

2. 配置服务器公钥

  • 复制生成的公钥内容,通过Forge上传到DigitalOcean服务器的目标用户名下,确保公钥被正确写入~/.ssh/authorized_keys文件
  • 检查权限:~/.ssh目录权限设为700,authorized_keys文件权限设为600(权限过宽会导致ssh认证失败)

3. 配置Bitbucket Pipelines

  • 进入仓库「Settings > Pipelines > SSH keys」
  • 点击「Add key」,粘贴转换后的OpenSSH格式私钥内容
  • 点击「Fetch」获取DigitalOcean服务器的已知主机指纹,避免ssh连接时的手动验证步骤

4. 调整部署脚本参数

在bitbucket-pipelines.yml的部署步骤中,给rsync的ssh命令添加非交互参数,彻底避免ssh-askpass错误:

script:
  - rsync -avz --delete --exclude='.git' ./dist/ your-user@your-do-ip:/deploy/path/ -e "ssh -o StrictHostKeyChecking=accept-new -o BatchMode=yes"
  • BatchMode=yes:强制ssh使用密钥认证,禁用任何交互式请求
  • StrictHostKeyChecking=accept-new:自动接受新的主机指纹(已配置已知主机后也可设为no,但accept-new更安全)

5. 恢复服务器默认安全配置

  • 编辑/etc/ssh/sshd_config,移除之前添加的PubkeyAcceptedAlgorithms +ssh-rsa,保留默认安全配置:
    PubkeyAuthentication yes
    
  • 重启sshd服务:
    sudo systemctl restart sshd
    

验证

触发Bitbucket Pipelines构建,查看部署日志,若成功同步,服务器/var/log/auth.log会出现类似如下的成功记录:

Accepted publickey for your-user from xxx.xxx.xxx.xxx port xxxxx ssh2: ED25519 SHA256:xxxxxxxxx

内容的提问来源于stack exchange,提问作者Kristjan O.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 04:41:01