💻

GITHUB无法使用22端口拉取代码的解决方法

Using SSH over the HTTPS port - GitHub Docs

有时,防火墙会完全拒绝允许 SSH 连接。如果使用 HTTPS 克隆凭据缓存选项,您可以尝试使用在 HTTPS 端口上建立的 SSH 连接进行克隆。大多数防火墙规则允许此操作,但代理服务器可能会干扰。GitHub Enterprise Server 用户:目前支持通过 SSH HTTPS 端口访问 GitHub Enterprise Server。

要测试 SSH HTTPS 端口是否可行,请运行 SSH 命令:

$ ssh -T -p 443 git@ssh.github.com

如果输出以下内容,则说明成功:

Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.

注意:主机名为 ssh.github.comgithub.com 的端口为 443。

如果成功了,那就太好了!如果没有成功,您需要按照我们的故障排除指南进行操作。

现在,要克隆存储库,您可以运行以下命令:

$ git clone ssh://git@ssh.github.com:443/YOUR-USERNAME/YOUR-REPOSITORY.git

启用 SSH 连接 HTTPS

如果您能够通过 git@ssh.github.com 的 443 端口进行 SSH 连接,则可以覆盖您的 SSH 设置,强制连接到运行服务器端口的 GitHub.com

要设置您的 SSH 配置文件,请编辑文件~/.ssh/config,并添加以下部分:

Host github.com
Hostname ssh.github.com
Port 443
User git

您可以通过连接一次 GitHub.com 来测试它是否有效:

$ ssh -T git@github.com

如果输出以下内容,则说明成功:

Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.

更新已知主机

在切换到端口 443 后第一次与 GitHub 交互时,您会收到警告消息,指出主机在 known_hosts 中未找到,但在另一个名称下找到了它。

The authenticity of host '[ssh.github.com]:443 ([140.82.112.36]:443)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This host key is known by the following other names/addresses:
  ~/.ssh/known_hosts:32: github.com
Are you sure you want to continue connecting (yes/no/[fingerprint])?

这是安全的,只要 SSH 指纹与 GitHub 发布的指纹匹配,就可以回答 “是” 问题。有关指纹列表,请参见 “GitHub 的 SSH 密钥指纹”。 https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port