返回顶部

ssh: connect to host github.com port 22: Connection timed out

ssh: connect to host github.com port 22: Connection timed out

本地pull/push推送代码到github.com项目报错22端口超时,测试连接也是超时,如下图:

 因为已经开强了,所以网络是通的,Google也正常访问怀疑是ssh秘钥问题,发现官方文档有相关介绍,按着操作解决。官方文档放在最后。

通过 HTTPS 端口使用 SSH

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

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

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

$ ssh -T -p 443 git@ssh.github.com
 Hi USERNAME! You've successfully authenticated, but GitHub does not
 provide shell access.

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

如果这有效,那就太好了!如果没有,您可能需要遵循我们的故障排除指南

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

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

通过 HTTPS 启用 SSH 连接

如果您能够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使用ssh端口: https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port

此外还有一些其他情况的ssh报错,可以参考官方文档进行解决。

 

posted @ 2024-01-31 18:04  九尾cat  阅读(778)  评论(0编辑  收藏  举报