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 "[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 中。
    
  2. 生成SSH密钥后,需要将公钥添加到你的GitHub账户
    复制你在之前创建的公钥。
    在 GitHub 账户的 Setting 页面中,选择 SSH and GPG keys,点击 New SSH key 添加新的 SSH key。
    粘贴你刚刚复制的 SSH 公钥。
    点击 Add SSH key,就可以将公钥添加到你的 GitHub 账户中了。
    这样,当你使用git提交代码时,就可以使用SSH密钥进行身份验证,而无需每次输入密码。

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

    ssh -T [email protected]
    

    出现下面提示就是成功

    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 [email protected]:username/resp.git

你可能感兴趣的:(github,ssh,https,git,java)