一、前提条件
-
本地已安装 Git。
-
已有 GitHub 账号。
-
本地项目已经有代码(可以是新建的项目或已有项目)。
没有这些的可以看我之前的文章去配置https://blog.csdn.net/2401_83607690/article/details/149034923?spm=1001.2014.3001.5502
二、步骤一:生成 SSH Key(推荐国内稳定使用)
在 Git Bash 中执行:
ssh-keygen -t ed25519 -C "你的GitHub邮箱"
-
一路回车使用默认路径(
~/.ssh/id_ed25519
) -
passphrase 可以留空
生成结果:
-
私钥:
id_ed25519
(不要泄露!) -
公钥:
id_ed25519.pub
复制公钥到 GitHub
-
打开 GitHub → Settings → SSH and GPG keys → New SSH key
-
Title:随便写,比如
VSCode
-
Key:打开公钥文件复制内容:

cat ~/.ssh/id_ed25519.pub
- Add SSH key
三、步骤二:添加远程仓库(SSH over 443 推荐)
cd /你的项目目录
git init # 如果本地还没有 git 仓库
git remote add origin ssh://git@ssh.github.com:443/你的用户名/仓库名.git
ssh://git@ssh.github.com:443/...
使用 443 端口可以避免国内网络屏蔽 22 端口的问题
查看远程仓库是否成功:
git remote -v
输出应为:
origin ssh://git@ssh.github.com:443/用户名/仓库名.git (fetch)
origin ssh://git@ssh.github.com:443/用户名/仓库名.git (push)
四、步骤三:添加本地代码到 Git 并提交
git add . # 添加当前目录所有文件
git commit -m "第一次提交" # 提交到本地仓库
git status
可以随时查看修改状态
五、步骤四:加载 SSH Key 并推送
eval $(ssh-agent -s) # 启动 SSH agent
ssh-add ~/.ssh/id_ed25519 # 添加私钥
ssh -T git@ssh.github.com -p 443 # 测试 SSH 连接
-
如果显示:
Hi 用户名! You've successfully authenticated, but GitHub does not provide shell access.
说明 SSH 配置成功。
推送到 GitHub:
git push -u origin master # 如果本地分支是 master
# 或者 git push -u origin main
-u
关联本地分支和远程分支,后续直接git push
就行
六、常见错误与解决办法
错误信息 | 原因 | 解决方法 |
---|---|---|
error: src refspec main does not match any |
本地没有 main 分支 |
git branch 查看分支,使用实际分支名推送(如 master ) |
error: No such remote 'origin' |
本地没有远程仓库 | git remote add origin <仓库URL> 添加远程 |
Failed to connect to github.com port 443 |
HTTPS 被墙或网络问题 | 使用 SSH over 443 或配置代理 |
ssh: connect to host github.com port 22: Connection timed out |
SSH 默认端口 22 被阻塞 | 使用 SSH over 443:ssh://git@ssh.github.com:443/... |
Permission denied (publickey) |
SSH key 未添加到 GitHub 或未加载到 agent | 上传公钥到 GitHub,执行 ssh-add ~/.ssh/id_ed25519 |
七、后续更新项目流程
-
修改代码后:
git add .
git commit -m "本次修改说明" -
推送到 GitHub:
git push
- 因为分支已经关联远程分支,直接
git push
即可
✅ 总结
-
国内用户推荐用 SSH over 443,稳定且不易被墙
-
GitHub 不再支持账号密码推送,HTTPS 需要 PAT
-
SSH Key 只需添加一次,以后无需每次输入密码
-
遇到问题时先用
git remote -v
、git branch
、git status
排查