一,问题提出


当我们在VScode,往往会看到这样的报错,这往往是自己的网络问题,核心错误是 443 端口连接被拒绝(Connection refused),搭配 gnutls_handshake() 失败,本质是国内网络无法直接访问 GitHub 的 HTTPS 端口,或本地代理 / 协议配置冲突导致的连接问题,但是在自己的VM上面又去弄代理比较麻烦,所以我们直接用SSH来解决这个问题

二,问题解决方法

1,查看有没有SSH密钥认证

使用SSH来解决这个问题
在 VS Code 的终端执行:

ls ~/.ssh/id_ed25519.pub

id_ed25519 是什么?
Ed25519 是一种基于椭圆曲线密码学的数字签名算法,常用于 SSH 密钥认证。它由 Daniel J. Bernstein 等人设计,具有安全、高效、密钥短等特点。
在 SSH 中,id_ed25519 是私钥文件(必须妥善保管,不能泄露),id_ed25519.pub 是对应的公钥文件(可以公开,用于添加到远程服务器的授权列表中)

2,没有密钥认证解决方法

若提示 “没有该文件”,执行下面命令生成密钥(替换为你的 GitHub 邮箱)

ssh-keygen -t ed25519 -C "你的GitHub注册邮箱"

全程按回车,不要设置密码(新手推荐)。若有文件,直接执行下一步。

复制 SSH 公钥终端执行命令复制公钥:

cat ~/.ssh/id_ed25519.pub

选中输出的全部内容(以ssh-ed25519开头,邮箱结尾)

在这个上面添加SSH密钥

3,执行操作推送

把本地仓库的远程地址从 HTTPS 改为 SSH终端执行命令,先查看当前远程地址:

git remote -v

会看到类似 https://github.com/**********/*******.git 的地址,执行命令替换为 SSH 地址:

git remote set-url origin git@github.com:*********/**********.git

测试连接并推送先测试 SSH 连接:

ssh -T git@github.com

若提示 Hi 你的账号! You've successfully authenticated...,说明连接成功。最后执行推送:

git push origin master

在此之前是需要你在本地仓库里面先推送一遍的

4,注意事项

github不允许你推送大于100MB的文件吗,并且你本地的仓库要与你远程的仓库的名字一样

1,如果删除git历史缓存的文件卡死就这样

如果超过 5 分钟还没反应,按 Ctrl + C 中断当前命令,然后执行以下步骤(更简单,适合新手):

  1. 先删除本地的两个大文件
    rm -rf 5GB_tmp.txt 5GB_tmp_test.txt
    
  2. 撤销上一次包含大文件的提交
    git reset HEAD^
    
  3. 重新添加需要的文件(自动排除大文件)
    git add .
    
  4. 重新提交(备注说明移除大文件)
    git commit -m "1.3 移除大文件,仅提交代码文件"
    
  5. 直接推送
    git push origin master

2,更改名字

git remote set-url origin git@github.com:*****/******.git

在终端执行这条命令,把地址改成和 GitHub 上一致的拼写:

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐