系统信息
ubuntu 18.04
🔴无法读取远程报错信息
$ git push
ssh: connect to host github.com port 22: Connection timed out
fatal: 无法读取远程仓库。
请确认您有正确的访问权限并且仓库存在。
问题分析
这个错误表明 Git 无法连接到 GitHub 的 SSH 服务。有几种可能的原因和解决方法:
-
网络连接问题: 首先确保网络连接正常。尝试访问其他网站,确保能够正常连接到互联网。
-
防火墙或代理问题: 如果在一个受限制的网络中,防火墙或代理可能会阻止 Git 连接到 GitHub。请检查网络设置,或者尝试在另一个网络中进行。
-
SSH 配置问题: 确保 SSH 密钥正确配置并且已经添加到 GitHub。可以使用以下命令来测试 SSH 连接:
ssh -T git@github.com
如果成功,应该看到一条欢迎信息。如果失败,请确保 SSH 密钥正确设置并添加到 GitHub。
-
GitHub 服务器问题: 有时 GitHub 服务器可能会遇到问题。在这种情况下,等待一段时间然后再尝试。
-
尝试使用 HTTPS: 如果 SSH 一直无法解决,尝试使用 HTTPS 连接:
git remote set-url origin https://github.com/your-username/your-repo.git
然后再尝试 push:
git push origin your-branch
这会要求输入 GitHub 的用户名和密码。
-
使用 SSH 配置文件(仅限 Linux/Mac): 在
~/.ssh/config
文件中添加以下内容:Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa
请确保
IdentityFile
路径正确指向 SSH 密钥文件。
如果上述步骤都没有解决问题,可能需要进一步调查网络和系统配置。
🔴 SSH 配置问题
排查问题过程中,在测试SSH连接时遇到错误如下:
错误信息
$ ssh -T git@github.com
ssh: connect to host github.com port 22: Connection timed out
问题分析
问题可能是由于无法连接到 GitHub 的 SSH 服务器导致的。
需要检查 SSH 配置
解决方案
🔵 编辑SSH 配置文件
修改config文件后解决,config相关信息如下:
$ cat ~/.ssh/config
# github
# 网站的别名,随意取
Host github.com
# 托管网站的域名
HostName ssh.github.com
# github上的用户名
User git
#端口号
Port 443
# 使用的密钥文件
IdentityFile ~/.ssh/id_rsa_github
参考资料
关于此问题相关链接及github文档
https://stackoverflow.com/questions/15589682/ssh-connect-to-host-github-com-port-22-connection-timed-out
https://docs.github.com/zh/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls
github文档地址:https://docs.github.com/zh/authentication/troubleshooting-ssh/using-ssh-over-the-https-port
在 HTTPS 端口使用 SSH
本文内容
- 启用通过 HTTPS 的 SSH 连接
- 更新已知主机
有时,防火墙会完全拒绝允许 SSH 连接。 如果无法选择使用具有凭据缓存的 HTTPS 克隆,可以尝试使用通过 HTTPS 端口建立的 SSH 连接克隆。 大多数防火墙规则应允许此操作,但代理服务器可能会干扰。
GitHub Enterprise Server 用户:目前不支持经 SSH 通过 HTTPS 端口访问 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 连接
如果你能在端口 443 上通过 SSH 连接到
git@ssh.github.com
,则可覆盖你的 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://www.toymoban.com/news/detail-828328.html
按 alt+up 激活文章来源地址https://www.toymoban.com/news/detail-828328.html
到了这里,关于(LINUX&WINDOWS)无法读取github远程仓库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!