Bitbucket部署到Digital Ocean流水线失败、手动拉取提示密码问题排查
问题根源
你当前的SSH配置仅完成了「Bitbucket流水线访问DO Droplet」的单向授权,缺少「DO Droplet访问Bitbucket仓库」的SSH授权,这是手动执行pull.sh弹出密码提示、流水线部署失败的直接原因。
解决步骤
1. 在DO Droplet上生成专属SSH密钥
登录你的DO Droplet,使用root用户执行以下命令,全程回车无需设置密码:
ssh-keygen -t ed25519 -C "do-droplet-deploy"
执行完成后会在/root/.ssh/目录下生成两个文件:id_ed25519(私钥)、id_ed25519.pub(公钥)。
2. 将公钥添加到Bitbucket仓库的访问权限中
- 执行命令
cat /root/.ssh/id_ed25519.pub,打印公钥内容并完整复制 - 打开对应Bitbucket仓库,进入「Repository settings」→「Access keys(访问密钥)」
- 点击「Add key」,粘贴刚才复制的公钥,自定义填写密钥名称,按需勾选Allow write access(仅拉取代码可不勾选)后保存
3. 验证拉取权限
在DO Droplet上手动执行以下命令,无密码输入提示即代表授权成功:
cd /root/eg-api && git pull origin master
可选优化(规避后续潜在问题)
- 确认仓库远程地址为SSH格式:在
eg-api目录下执行git remote -v查看,如果返回结果为HTTPS开头,执行以下命令替换为SSH格式:
git remote set-url origin git@bitbucket.org:<你的Bitbucket用户名>/<你的仓库名>.git
- 将Bitbucket主机公钥添加到DO Droplet的可信主机列表,避免首次拉取的交互提示:
ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts
完成以上配置后重新运行Bitbucket流水线即可正常部署。
内容的提问来源于stack exchange,提问作者TheMightyLlama
相关产品推荐
相关产品推荐

