SSH代替HTTPS,解决无法连接GitHub远程仓库的问题

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密钥进行验证:

  1. 生成 SSH 密钥:在本地计算机上生成 SSH 密钥

    • 打开命令行终端,输入命令

      ssh-keygen -t rsa -b 4096 -C "your_email@example.com",其中your_email@example.com改为你的邮箱

    接着,一路回车即可,直到命令行中输出 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 中。

  2. 生成SSH密钥后,需要将公钥添加到你的GitHub账户

    复制你在之前创建的公钥。

    在 GitHub 账户的 Setting 页面中,选择 SSH and GPG keys,点击 New SSH key 添加新的 SSH key。

    粘贴你刚刚复制的 SSH 公钥。

    点击 Add SSH key,就可以将公钥添加到你的 GitHub 账户中了。

    这样,当你使用git提交代码时,就可以使用SSH密钥进行身份验证,而无需每次输入密码。

  3. 验证密钥是否生成成功

    复制代码
    ssh -T git@github.com

    出现下面提示就是成功

    复制代码
    Hi Gatva! You've successfully authenticated, but GitHub does not provide shell access.  
  4. 操作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
  5. 用SSH协议git clone

    如果由于网络问题 git clone https://github.username.resp.git 失败,就可以用SSH协议代替HTTP协议 git clone git@github.com:username/resp.git

相关推荐
wangruofeng15 小时前
7.1 万 Star 的 MinerU,把 PDF 变成 LLM 能读懂的 Markdown
github
wangruofeng15 小时前
75k Star 的 OCR 传奇——Tesseract 的 40 年,从 HP 实验室到 LSTM 神经网络
github
karry_k16 小时前
MyBatis批量insert-select踩坑:useGeneratedKeys=true 可能让PostgreSQL返回大量插入结果
java·后端
karry_k16 小时前
PostgreSQL 在 MyBatis 中执行正常 SQL 失效:一次 DELETE USING 踩坑记录
java·后端
逛逛GitHub18 小时前
又挖到 3 个不错的 GitHub 项目,尤其是第 2 个。
github
逛逛GitHub18 小时前
GitHub 上 13 万星的爬虫神器,不要 API Key 就能用了。
github
kyriewen18 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表
前端·javascript·git
SamDeepThinking19 小时前
从源码到代码:MyBatis-Flex 与 MyBatis-Plus 的逐项对比
java·后端·程序员
她的男孩1 天前
Spring Boot 接 Flowable 工作流:用 3 个注解搭一个请假审批流程
java·后端·架构
荣码1 天前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python