当我们在使用Goland推送commit到Github时,如果出现如下报错:
Push failed: Unable to access ‘https://github.com/xxx.git/’: OpenSSL SSL_read: Connection was reset, errno 10054
问题原因:读取SSL报错,本地没有配置SSH连接到Github的密钥文件
可以按照如下方法来解决(亲测有效):
1.首先,如果之前有配置过SSH的密钥,那尝试在git bash中使用以下git命令打开SSL验证来解决:
git config –global http.sslVerify “true”
2.如果没有配置过SSH的密钥,则依然执行上面的命令,以确保SSL验证为开启状态,然后在git bash中执行以下命令:
ssh-keygen -t ed25519 -C “你github账号的邮箱”
3.之后会提示你输入一个文件名:“Enter file in which to save the key:[]”,这里建议不要输入,直接按回车,用默认的文件名即可。同样的,出现“Enter passphrase (empty for no passphrase):[]”,这里也建议不要输入,直接按回车。然后就生成了一对密钥并且会提示你密钥文件存放的位置。
4.将密钥文件id_ed25519.pub打开,复制里面的内容,进入Github的setting(设置)页面,找到“SSH and GPG keys”选项,点击右上方的“New SSH key”按钮,会进入到如下图所示的页面,Title(标题)可以随便输入无所谓,Key里面把前面复制的 密钥文件id_ed25519.pub里的内容粘贴进去,然后点击“Add SSH key”按钮,这样就完成Github的SSH配置了。
5.回到git bash,输入以下命令来验证一下本地跟Github直接的SSH密钥验证是否成功:
ssh -T git@github.com
出现提示“Are you sure you want to continue connecting (yes/no/[fingerprint])? :[]”, 直接输入yes然后回车,当出现以下提示则说明SSH密钥验证成功:
Hi xxx! You’ve successfully authenticated, but GitHub does not provide shell access.
如出现“Error: Permission denied (publickey)”,则说明验证失败,要仔细检查是否严格按照上面的步骤执行。
6.密钥验证成功以后,再次尝试Git – push推送,就能push成了
Push successful: Pushed 1 commit to origin/master
版权声明:除特殊说明,文章均为博主 去吐槽 原创文章,转载请注明原文出处。
国内上github 速度真是慢呀
确实,也没办法,用ssh感觉会稳定一点