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

Bitbucket Pipelines与SSH密钥:新增Windows服务器及连接问题排查

Bitbucket Pipelines SSH连接Windows服务器失败问题解决

问题描述

我配置SSH密钥以部署到Windows服务器:

  • 在Bitbucket生成SSH密钥并将公钥复制到Windows服务器的authorized_keys文件
  • 在Windows服务器生成SSH密钥并将公钥添加到Bitbucket的SSH密钥列表,同时将服务器添加为已知主机并获取了指纹(不清楚用途)

我的bitbucket-pipelines.yml配置如下:

pipelines:
  default:
    - step:
        name: Deployment
        script:
          - pipe: atlassian/ssh-run:0.4.2
            variables:
              SSH_USER: ''
              SERVER: ''
              COMMAND: ''

连接时出现错误:

Permission denied, please try again.
Permission denied, please try again.
Received disconnect: Too many authentication failures

需要实现通过SSH连接Windows服务器,解决该问题。

解决方案

1. 修正密钥配置逻辑

Bitbucket Pipelines连接远程服务器时,仅需将Bitbucket生成的私钥对应的公钥放入Windows服务器的authorized_keys文件即可,无需在Windows服务器生成密钥添加到Bitbucket(这是反向连接的配置,不适用当前场景)。

2. 完善bitbucket-pipelines.yml配置

  • 填充SSH_USER:Windows服务器的SSH登录用户名,注意格式(如.\username或domain\username)
  • 填充SERVER:服务器的IP/域名,可指定端口(如xxx.xxx.xxx.xxx:22)
  • 添加SSH_KEY变量:将Bitbucket生成的私钥内容填入,需在Bitbucket仓库设置中标记为安全变量
  • 示例配置:
pipelines:
  default:
    - step:
        name: Deployment
        script:
          - pipe: atlassian/ssh-run:0.4.2
            variables:
              SSH_USER: '.\admin'
              SERVER: '192.168.1.100:22'
              SSH_KEY: '$BITBUCKET_SSH_PRIVATE_KEY'
              COMMAND: 'dir C:\deploy'

3. 检查Windows服务器SSH配置

  • 确保OpenSSH SSH Server服务已启动,可在系统服务中设置为自动启动
  • 确认authorized_keys文件路径:默认位于C:\Users\<用户名>\.ssh\authorized_keys,需设置正确权限(仅当前用户拥有读写权限)
  • 检查服务器防火墙,允许SSH端口(默认22)的入站连接

4. 解决“Too many authentication failures”错误

该错误是因为SSH客户端尝试多个无效密钥导致,可通过以下方式处理:

  • 在ssh-run管道中明确指定SSH_KEY变量,强制使用目标私钥认证
  • 清理Bitbucket仓库SSH密钥列表中的无关公钥,减少无效认证尝试

关于服务器指纹的用途

服务器指纹用于验证连接的服务器为目标主机,防止中间人攻击。首次连接时确认指纹并添加到known_hosts后,后续连接会自动校验指纹一致性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 20:33:31