别再用代理了!Ubuntu24用SSH拉GitHub才是正解
别再用代理了!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


浙公网安备 33010602011771号