git 通过 HTTPS 端口使用 SSH

有时,防火墙完全拒绝允许 SSH 连接。如果无法将 HTTPS 克隆与凭据缓存结合使用,则可以尝试使用通过 HTTPS 端口建立的 SSH 连接进行克隆。大多数防火墙规则都应该允许这样做,但代理服务器可能会干扰。

有时候会遇到,通过代理用 ssh 推送或拉取 GitHub 的代码会报错,错误提示如图1,这个时候可以试试给 ssh 连接换个端口:修改 ~/.ssh/config 文件就可以了。GitHub也有说明,这个问题应该是一个很普遍的问题:https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port

在这篇文章中

GitHub Enterprise Server 用户:目前不支持通过 HTTPS 端口通过 SSH 访问 GitHub Enterprise Server。

要测试是否可以通过 HTTPS 端口进行 SSH,请运行以下 SSH 命令:

注意:端口 443 的主机名是 ,而不是 。ssh.github.comgithub.com

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

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

启用通过 HTTPS 的 SSH 连接

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

要在 SSH 配置文件中设置此项,请在 编辑该文件,并添加以下部分:~/.ssh/config

您可以通过再次连接到 GitHub.com 来测试这是否有效:

更新已知主机

切换到端口 443 后首次与 GitHub 交互时,可能会收到警告消息 未在 中找到主机,或者通过其他名称找到主机。known_hosts

假设 SSH 指纹匹配,那么对这个问题的回答“是”是安全的 GitHub 发布的指纹之一。有关指纹列表,请参阅“GitHub 的 SSH 密钥指纹”。

使用 publickey

使用时候可能会出现如下信息,需要使用 publickey 登录自己的github.com账号

1. 生成新的 SSH 密钥对

此命令将使用您的电子邮件作为标签创建新的 SSH 密钥。按照提示将密钥保存在默认位置 ( ~/.ssh/id_rsa ),并根据需要设置密码。

2. 启动 SSH 代理

如果尚未运行,请启动 SSH 代理

3. 将 SSH 密钥添加到代理

4. 将 SSH 密钥添加到 GitHub

复制输出,然后导航到 Settings > SSH and GPG keys > New SSH key.将其添加到 GitHub 帐户

5. 修改 ~/.ssh/config

6. 测试与 GitHub 的 SSH 连接

7. 克隆项目测试效果

响应速度比原来的 https 要快。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部