很长时间没有使用GitHub了,心血来潮将本地的项目传送到GitHub上却发现不能正常工作。花了一上早上将问题解决了,于是将问题解决过程记录一下。
首先出现的问题是Push代码到远程GitHub仓库时,出现如下错误。
fatal: unable to access ‘https://github.com/xxx/webfast.git/’: Failed to connect to github.com port 443: Timed out
这个问题的原因是 ssh的公钥没有配置好。以前使用HTTPS提交代码没有出现这样的问题,上网查了一下发现Github修改了通信安全要求
GitHub 在 2022 年 3 月 15 日通过删除较旧的不安全密钥类型提高了安全性。 从该日期起,不再支持 DSA 密钥 (ssh-dss)。 您无法将新 DSA 密钥添加到您在 GitHub.com 上的个人帐户。 在 2021 年 11 月 2 日之前 valid_after 的 RSA 密钥 (ssh-rsa) 可以继续使用任何签名算法。 在该日期之后生成的 RSA 密钥必须使用 SHA-2 签名算法。 某些较旧的客户端可能需要升级才能使用 SHA-2 签名。
好在这几天处理了Gitlab私有项目SSH提交代码的问题,于是找来以前的文档解决如下(我的环境是Windows 10 系统)
找到windows上的公钥和密钥是放在了目录,默认是位于c:/用户/<用户名>/.ssh/id_rsa.pub
将其中的密钥复制出来,通过浏览器打开GitHub页面,在用户名下拉菜单找到settings,
在边栏的“Access(访问)”部分中,单击 SSH 和 GPG 密钥。
单击 New SSH key(新 SSH 密钥)或 Add SSH key(添加 SSH 密钥),将刚刚复制出来的密钥粘贴到相应的文本框中。
然后继续Push提交代码到GitHub仓库,但是又发现了如下错误:
fatal: unable to access ‘https://github.com/xxx/webfast.git/’: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
关于这个问题,使用为Git本身的HTTPS代理导致的,Git支持的协议又三种,即:HTTPS、SSH、SVN、SVN+SSH。
在进行Push时,本应走SSH通道的,但是因为Git本身默认设置了HTTPS代理,所以,在进行Push的时候走HTTPS通道了,于是就Push不了。
于是将GitHub仓库的地址改为SSH方式:git@github.com:xxx/webfast.git
之后再Clone/Push代码时,就正常工作了。
参考文章:
https://www.cnblogs.com/greentomlee/p/14613993.html 解决 git 上传: Failed to connect to github.com port 443: Timed out
https://docs.github.com/cn/authentication/connecting-to-github-with-ssh 使用 SSH 连接到 GitHub
https://blog.csdn.net/m0_59476515/article/details/125041708 GitHub Clone/Push代码失败 OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 的解决办法
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/282630.html