我必须要求打开哪个端口才能从 bitbucket 克隆 git 存储库?

rea*_*ebo 4 firewall vpn git

我们正在客户的 VPN 上部署一个项目。

我们必须做一个共同的

git clone git@bitbucket.org:<username>/<repo_name>.git
Run Code Online (Sandbox Code Playgroud)

实际上我们不能,因为 git 无法到达 bitbucket。

我们解决了第一个问题,要求服务器必须能够解析 bitbucket.org,因此服务器必须联系“wan”中的 dns。

但现在客户基础设施的维护人员询问我们要开放哪些端口。

我没有这个答案,所以我好心地问你:为什么我必须要求打开端口才能从 bitbucket 克隆存储库?

use*_*686 5

在 Git 中, 形式的位置[user@]server:path被解释为SSH地址(“克隆”工具实际上ssh [user@]server在后台运行)。

默认情况下,SSH 连接到端口22/tcp,这是标准 SSH 端口。Git 不会改变这一点,BitBucket 的 SSH 服务同样需要标准端口 22/tcp 上的连接。


但是,BitBucket 还有一个备用服务器,altssh.bitbucket.org它接受端口 443/tcp 上的 SSH 连接(通常是 HTTPS 端口,并且通常已被允许)。为了使用它(例如,如果您的系统管理员不想允许标准端口 22),您可以通过创建包含~/.ssh/config以下内容的重定向连接:

Host bitbucket.org
    HostName altssh.bitbucket.org
    Port 443
    HostkeyAlias bitbucket.org
Run Code Online (Sandbox Code Playgroud)

另一种替代方法是通过实际的HTTPS(使用端口 443/tcp)克隆存储库,使用https://可以在存储库页面上找到的常规 URL。缺点是它需要使用密码(或一些特殊令牌)并且不支持 SSH 密钥对。(但另一方面,对于公共存储库来说,它可能比 SSH 更方便。)

git clone https://<username>@bitbucket.org/<username>/<repo_name>.git
Run Code Online (Sandbox Code Playgroud)