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

连接Bitbucket时报kex_exchange_identification: write: Broken pipe错误如何解决

根因分析

你提供的SSH调试日志显示,本地已经成功和Bitbucket的22端口建立TCP连接,但在密钥交换初始化阶段连接被强制断开,且同系统的其他设备操作正常,可排除Bitbucket服务端故障、SSH密钥本身配置错误的问题,故障点集中在故障设备的本地网络、系统权限、安全规则层面。

解决方案

按优先级从高到低尝试以下操作:

1. 更换SSH连接端口(最高概率解决)

绝大多数该类报错都是本地网络运营商、公司防火墙、VPN/代理工具封禁了22端口的出站请求导致,可改用Bitbucket官方提供的SSH 443备用端口:

  • 打开本地SSH配置文件~/.ssh/config,添加以下专属配置:
Host bitbucket.org
  HostName altssh.bitbucket.org
  Port 443
  User git
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa
  • 保存后执行ssh -T git@bitbucket.org测试连通性即可。

2. 修复SSH文件权限

Mac系统对SSH相关文件的权限要求严格,权限过高会触发SSH安全机制主动断开连接:

  • 执行以下命令修复所有SSH相关文件权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 644 ~/.ssh/config
  • 重启SSH Agent并重新加载密钥:
killall ssh-agent
eval "$(ssh-agent -s)"
ssh-add -K ~/.ssh/id_rsa
  • 再次测试SSH连接即可。

3. 排查本地安全拦截规则

故障设备的系统防火墙、第三方安全软件(杀毒、终端安全管理工具等)可能主动拦截了SSH出站请求:

  • 临时关闭系统防火墙:打开「系统偏好设置」-「安全性与隐私」-「防火墙」,选择关闭防火墙后测试连接。如果恢复正常,将SSH添加到防火墙放行白名单即可。
  • 临时退出所有第三方安全软件、VPN/代理工具后再测试连接。

4. 修复DNS解析异常

如果本地DNS解析到异常的Bitbucket节点IP,也会导致连接断开:

  • 执行nslookup bitbucket.org,对比另一台正常设备的解析结果,如果IP段不一致,将本地DNS修改为公共DNS(8.8.8.8、114.114.114.114),执行以下命令刷新DNS缓存:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
  • 再次测试连接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:36:07