SSH故障排除:在HTTPS端口使用 SSH
在 HTTPS 端口使用 SSH
有时,防火墙会完全拒绝允许 SSH 连接。 如果无法选择使用具有凭据缓存的 HTTPS 克隆,可以尝试使用通过 HTTPS 端口建立的 SSH 连接克隆。 大多数防火墙规则应允许此操作,但代理服务器可能会干扰。
GitHub Enterprise Server 用户:目前不支持经 SSH 通过 HTTPS 端口访问 GitHub Enterprise Server。
要测试通过 HTTPS 端口的 SSH 是否可行,请运行以下 SSH 命令:
1 | $ ssh -T -p 443 git@ssh.github.com |
注意:端口 443 的主机名为 ssh.github.com,而不是 github.com。
如果这样有效,万事大吉! 否则,可能需要遵循我们的故障排除指南。
现在,若要克隆存储库,可以运行以下命令:
1 | $ git clone ssh://git@ssh.github.com:443/YOUR-USERNAME/YOUR-REPOSITORY.git |
启用通过 HTTPS 的 SSH 连接
如果你能在端口 443 上通过 SSH 连接到 git@ssh.github.com,则可覆盖你的 SSH 设置来强制与 GitHub.com 的任何连接均通过该服务器和端口运行。
要在 SSH 配置文件中设置此行为,请在 ~/.ssh/config 编辑该文件,并添加以下部分:
1 | Host github.com |
你可以通过再次连接到 GitHub.com 来测试这是否有效:
1 | $ ssh -T git@github.com |
更新已知主机
在切换到端口 443 后第一次与 GitHub 交互时,你可能会收到一条警告消息,指出在 known_hosts 中找不到主机,或者该主机由其他名称找到。
1 | > The authenticity of host '[ssh.github.com]:443 ([140.82.112.36]:443)' can't be established. |
假设 SSH 指纹与 GitHub 发布的指纹之一匹配,那么可以针对这个问题安全地回答“是”。 有关指纹列表,请参阅“Github 的 SSH 密钥指纹”。
参考资料
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 竹山一叶!
评论