别再用代理了!Ubuntu24用SSH拉GitHub才是正解

0 阅读2分钟

别再用代理了!Ubuntu24用SSH拉GitHub才是正解

找到我: C某DN, 掘某金, 头某条, 博某客园搜索改一下配置文件, 不出意外每篇文章我都会在这些平台更新.

在国内开发环境中,拉取GitHub上的大仓库(例如Dify)时,经常会遇到@改一下配置文件: error: RPC failed ; http 429 curl 22 the requested url returned error 429,fatal: expected flush after ref listing

但更常有的情况的是:

  • 浏览器可以正常打开GitHub
  • git clone却频繁失败

本文提供一套稳定、可长期使用的解决方案。

一、为什么会失败?

以GitHub上的Dify为例,大仓库常见问题有:

  • HTTP被限流(429)
  • 代理不稳定
  • HTTP传输被中断

本质原因:HTTP方式在国内不稳定 解决思路:改用SSH + 443端口 @改一下配置文件

二、前提条件

能正常打开GitHub网页端 找一位能打开GitHub网页端的同事,借电脑操作一次(添加SSH Key) @改一下配置文件

三、完整解决步骤

第一步:确认本机是否已有SSH Key

进入 SSH 目录:

cd ~/.ssh
ls

正常情况下你应该能看到:@改一下配置文件

id_rsa
id_rsa.pub

@改一下配置文件 个人建议新生成一个ed25519类型的key, 生成新key:

ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车即可。

生成后应该看到两个文件:id_ed25519和id_ed25519.pub

第二步:配置SSH走443端口

国内很多环境封22端口,但443通常开放。 编辑配置文件:

vim ~/.ssh/config

写入:

Host github.com
  HostName ssh.github.com
  Port 443
  User git

保存退出。

第三步:把公钥添加到GitHub(关键步骤)

查看公钥内容:

cat ~/.ssh/id_ed25519.pub

必须完整复制整行内容,不要改格式。

然后: GitHub → Settings → SSH and GPG keys → New SSH key → 粘贴 → Save

  • Title随便写
  • Key类型选Authentication Key

第四步:如果仍然失败,指定使用的Key

有时候系统里存在多个SSH Key,需要明确告诉SSH使用哪一个。@改一下配置文件 修改配置文件:

Host github.com
  HostName ssh.github.com
  Port 443
  User git
  IdentityFile ~/.ssh/id_ed25519

然后修改权限(可以先执行第五步,不行在修改权限):

chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

第五步:测试SSH是否成功(必须做)

ssh -T git@github.com

正确结果应该类似:Hi xxxxx! You've successfully authenticated, but GitHub does not provide shell access.@改一下配置文件

四、正式拉取仓库

现在可以正常拉取:

git clone git@github.com:langgenius/dify.git

如果仓库较大,可以使用浅克隆:@改一下配置文件

git clone --depth=1 git@github.com:langgenius/dify.git

1.jpeg