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

相关推荐
FQNmxDG4S1 小时前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
虹科网络安全2 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje2 小时前
Java语法进阶
java·开发语言·jvm
rKWP8gKv73 小时前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫3 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287923 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本3 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
yaoxin5211233 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
极客先躯5 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户60648767188965 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java