老旧应用部署时Yarn安装依赖停滞问题求助
解决Yarn拉取Bitbucket私有包时SSH连接被拒的问题
问题核心
你手动用HTTPS能克隆私有仓库,但Yarn自动切换成SSH协议克隆,导致目标主机22端口连接被拒——这是旧版Yarn(0.22.0)的常见协议转换行为,加上虚拟机网络环境对SSH出站的限制导致的。
解决方案
强制Git用HTTPS替代Bitbucket的SSH协议
配置Git全局规则,让所有指向bitbucket.inficon.com的SSH请求自动转为HTTPS,这样Yarn克隆时会沿用你手动成功的协议:git config --global url."https://bitbucket.inficon.com/".insteadOf "ssh://bitbucket.inficon.com/"如果只想针对当前项目生效,进入项目目录执行:
git config url."https://bitbucket.inficon.com/".insteadOf "ssh://bitbucket.inficon.com/"更新Yarn到稳定版本
你使用的Yarn 0.22.0是多年前的旧版本,存在不少协议处理的bug。升级到最新稳定版能从根源减少这类问题:npm install -g yarn@latest锁定package.json中的HTTPS依赖格式
确保你的package.json里的私有包依赖明确使用HTTPS格式,避免Yarn自动转换:"dependencies": { "common-utils": "git+https://bitbucket.inficon.com/scm/plat/common-utils.git" }排查虚拟机网络限制(辅助)
确认Vagrant虚拟机的网络模式(如NAT/桥接)允许出站HTTPS(443端口)请求;同时检查虚拟机内的防火墙规则,确保没有意外阻止相关网络请求(不过你手动HTTPS克隆成功,这条优先级较低)。
内容的提问来源于stack exchange,提问作者Jose Raul Perera
相关产品推荐
相关产品推荐

