git push 无法连接远程仓库
在我开了代理,网很好,访问github官网很流畅的情况的下,我用 git push
上传文件到远程厂库,他还是提醒我无法连接
第一次让我输入账户密码,我输了,它提示我输入错误
第二次再传就直接无法链接远程仓库了
fatal: unable to access 'https://github.com/Gatva/Java-.git/': Failed to connect to github.com port 443: Timed out
fatal: unable to access 'https://github.com/username/repo.git/': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
检查用户名和邮箱是否正确
可以再git Bash中查看
$ git config user.name
$ git config user.email
如果确认账户密码没有错误,还无法访问就是Github当前已经不支持账户密码的验证方式
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/Gatva/Gatva-students-management-system.git/'
使用SSH协议传输
为了解决这个问题,可以使用个人访问令牌 (Personal Access Token, PAT) 或 SSH 密钥进行身份验证。
SSH(Secure Shell)是一种在网络上进行加密通信的协议,用于远程登录服务器、传输数据和执行命令。
下面是使用SSH密钥进行验证:
-
生成 SSH 密钥:在本地计算机上生成 SSH 密钥
- 打开命令行终端,输入命令
ssh-keygen -t rsa -b 4096 -C "[email protected]",其中[email protected]改为你的邮箱
接着,一路回车即可,直到命令行中输出 Enter a file in which to save the key 那一步。这时需要输入保存密钥的文件名和路径,如果不想修改,直接按回车即可。默认路径是在用户主目录下的 .ssh 文件夹中。
接下来会让你输入两次密码,可以为空,直接按回车,如果设置有密码,每次使用SSH密钥进行身份验证时都需要输入密码进行验证。
完成后,id_rsa是生成的私钥,保存在你指定的文件夹路径下,id_rsa.pub是生成的公钥,保存在相同路径下。
- 启动SSH
eval "$(ssh-agent -s)" 命令启动 ssh-agent ssh-add ~/.ssh/id_rsa 将私钥添加到 ssh-agent 中。
-
生成SSH密钥后,需要将公钥添加到你的GitHub账户
复制你在之前创建的公钥。
在 GitHub 账户的 Setting 页面中,选择 SSH and GPG keys,点击 New SSH key 添加新的 SSH key。
粘贴你刚刚复制的 SSH 公钥。
点击 Add SSH key,就可以将公钥添加到你的 GitHub 账户中了。
这样,当你使用git提交代码时,就可以使用SSH密钥进行身份验证,而无需每次输入密码。 -
验证密钥是否生成成功
ssh -T [email protected]
出现下面提示就是成功
Hi Gatva! You've successfully authenticated, but GitHub does not provide shell access.
-
操作git
最后git push
就成功了!$ git push Enumerating objects: 74, done. Counting objects: 100% (74/74), done. Delta compression using up to 16 threads Compressing objects: 100% (65/65), done. Writing objects: 100% (72/72), 65.53 KiB | 124.00 KiB/s, done. Total 72 (delta 3), reused 0 (delta 0) remote: Resolving deltas: 100% (3/3), done. To github.com:Gatva/Gatva-students-management-system.git d5bfa77..713a087 main -> main
-
用SSH协议git clone
如果由于网络问题git clone https://github.username.resp.git
失败,就可以用SSH协议代替HTTP协议git clone [email protected]:username/resp.git