作者:长不大的二楞子 | 来源:互联网 | 2024-11-29 09:53
今天早晨遇到一个棘手的问题,代码无法提交到GitHub,经过一系列尝试后终于解决了问题,特此记录。问题出现在公司的三台开发机上(两台Windows和一台MacOS),它们都遇到了SSH连接超时错误(错误码22或443)。我首先检查了GitHub官网,发现只有在开启VPN的情况下才能访问,且需要更新主机文件,添加了140.82.112.3 github.com之后,可以在常规网络环境下访问GitHub。
尽管如此,依然面临访问失败或权限被拒的情况。我尝试了重启电脑,但没有效果。接着,我通过Fork新建了一个SSH密钥,确保其名称与之前的SSH密钥相同(例如winnotebook.pub),并将其添加到GitHub的SSH设置中,但仍然收到权限拒绝的错误。期间,我还尝试使用Git Bash重新生成SSH密钥,同样无效。
为了进一步排查问题,我在不同的开发机上进行了测试,但结果依旧。考虑到是否可以通过HTTPS方式解决问题,我注意到自2021年8月14日起,GitHub不再允许在克隆地址中直接输入用户名和密码,而是需要在开发者设置中创建个人访问令牌,并使用该令牌进行操作。因此,我创建了一个新的令牌,并尝试通过HTTPS克隆仓库,但在输入令牌后仍然遇到问题。
面对这一系列挫折,我决定先通过下载ZIP包的方式完成当天的工作任务。令人惊讶的是,在再次尝试使用Git Bash创建SSH密钥时,将密钥命名为id_rsa后,问题竟然得到了解决。我将新生成的id_rsa密钥添加到GitHub的SSH设置中,并尝试连接,结果显示成功。随后,我使用Fork推送代码,也顺利完成。
这次经历让我感到非常困惑。通常情况下,我的SSH密钥都是根据开发机的名称命名的,如winnotebook、macnotebook、windesktop,且这些密钥已经在GitHub上正确配置。为何今天早上这三台机器会突然集体失效,至今仍是一个谜。尽管最终问题得以解决,但整个过程更像是偶然发现的解决方案。希望这次记录能够在未来遇到类似问题时提供帮助。