【github】SSH推送远程仓库
SHH推送
一,问题提出
当我们在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中断当前命令,然后执行以下步骤(更简单,适合新手):
- 先删除本地的两个大文件
rm -rf 5GB_tmp.txt 5GB_tmp_test.txt- 撤销上一次包含大文件的提交
git reset HEAD^- 重新添加需要的文件(自动排除大文件)
git add .- 重新提交(备注说明移除大文件)
git commit -m "1.3 移除大文件,仅提交代码文件"- 直接推送
git push origin master2,更改名字
git remote set-url origin git@github.com:*****/******.git在终端执行这条命令,把地址改成和 GitHub 上一致的拼写:
更多推荐


所有评论(0)