Windows下无法Git Clone Bitbucket仓库:端口22网络不可达
解决远程Windows电脑无法通过SSH克隆Bitbucket仓库的问题
问题定位
从报错ssh: connect to host bitbucket.org port 22: Network is unreachable可确定:远程电脑的网络环境拦截了SSH(22端口)出站请求,而非密钥权限问题(已通过同密钥在其他电脑验证),且Windows防火墙已排除。
方案1:改用HTTPS协议克隆
若网络允许HTTPS(443端口)访问Bitbucket,直接切换克隆地址:
git clone https://bitbucket.org/my_workspace/my_repo.git
克隆时需输入Bitbucket用户名和App Password(Bitbucket已禁用账号密码直接登录,需在账号设置中生成专用App密码)。
方案2:通过SSH隧道转发流量(利用本地正常电脑中转)
远程电脑已安装OpenSSH服务器,可借助本地正常电脑建立隧道,将远程电脑的SSH请求转发到本地,再由本地访问Bitbucket:
步骤1:本地正常电脑建立反向SSH隧道
打开PowerShell(或Git Bash),执行命令:
ssh -R 2222:bitbucket.org:22 <远程电脑用户名>@<远程电脑IP/主机名>
-R 2222:bitbucket.org:22:将远程电脑的2222端口流量转发到本地,再由本地转发至bitbucket.org:22<远程电脑用户名>:远程Windows电脑的管理员账号名<远程电脑IP/主机名>:远程电脑的可访问IP或局域网主机名
执行后会进入远程电脑命令行,保持该窗口开启。
步骤2:远程电脑配置Git使用隧道
在远程电脑的Git Bash中,修改仓库远程地址(或直接用隧道地址克隆):
# 已有仓库修改远程地址 git remote set-url origin ssh://git@localhost:2222/my_workspace/my_repo.git # 新仓库直接用隧道地址克隆 git clone ssh://git@localhost:2222/my_workspace/my_repo.git
步骤3:验证隧道连通性
在远程电脑Git Bash中执行:
ssh -p 2222 git@localhost
若返回logged in as <你的Bitbucket用户名>,说明隧道生效,可正常执行Git操作。
方案3:尝试Bitbucket备用SSH端口
Bitbucket支持备用SSH端口443,修改Git的SSH配置尝试连通:
- 远程电脑Git Bash中创建/编辑
~/.ssh/config:
touch ~/.ssh/config nano ~/.ssh/config
- 添加配置内容:
Host bitbucket.org Hostname altssh.bitbucket.org Port 443
- 保存退出后,重新执行
git clone git@bitbucket.org:my_workspace/my_repo.git测试。
内容的提问来源于stack exchange,提问作者Gabriel Staples
相关产品推荐
相关产品推荐

