Mac 本地项目推送至 GitHub 完整指南

第一步:检查本地 SSH 密钥

macOS 默认 SSH 密钥路径为 ~/.ssh/id_rsa(私钥)和 ~/.ssh/id_rsa.pub(公钥)。

查看是否有现有密钥

ls -la ~/.ssh/

如果没有密钥,生成一对:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

一路回车使用默认路径即可

复制公钥内容:

cat ~/.ssh/id_rsa.pub

将输出的内容完整复制,前往 GitHub → Settings → SSH and GPG Keys → New SSH Key,粘贴并保存。

第二步:配置 SSH Config(解决 22 端口被封问题)

部分网络环境(公司网络、部分 ISP)会封禁 SSH 默认的 22 端口,导致 git push 失败。通过以下配置使用 443 端口(HTTPS 端口)绕过限制。

编辑 SSH 配置文件:

vi ~/.ssh/config

添加以下内容:

Host github.com

Hostname ssh.github.com

Port 443

User git

IdentityFile ~/.ssh/id_rsa

IdentitiesOnly yes

说明:

Hostname ssh.github.com --- GitHub 提供的 SSH-over-HTTPS 域名

Port 443 --- 走 HTTPS 端口,通常不会被防火墙拦截

IdentityFile --- 指定使用的私钥路径

IdentitiesOnly yes --- 只使用指定的密钥,避免尝试其他密钥导致失败

第三步:测试 SSH 连接

ssh -T git@github.com

成功时会输出:

Hi <你的用户名>! You've successfully authenticated, but GitHub does not provide shell access.

常见错误:

Permission denied (publickey) → 公钥未添加或 SSH config 配置错误

Connection timed out → 检查网络代理设置,或确认 SSH config 中的 Hostname 和 Port 是否正确

第四步:设置远程仓库地址

首次添加远程仓库:

git remote add origin git@github.com:<用户名>/<仓库名>.git

已有远程地址需要修改(从 HTTPS 切换为 SSH):

git remote set-url origin git@github.com:<用户名>/<仓库名>.git

验证远程地址:

git remote -v

预期输出:

origin git@github.com:<用户名>/<仓库名>.git (fetch)

origin git@github.com:<用户名>/<仓库名>.git (push)

第五步:推送代码

首次推送(设置上游分支关联)

git push --set-upstream origin main

后续推送只需:

git push

附录:HTTPS 方式(备选)

如果 SSH 配置遇到问题,可以临时使用 HTTPS 方式:

设置远程地址为 HTTPS

git remote set-url origin https://github.com/\<用户名>/<仓库名>.git

首次推送会要求输入 GitHub 用户名和 Token(不是密码)

git push --set-upstream origin main

GitHub 已废弃密码认证,需使用 Personal Access Token 代替密码。

快速操作清单

1. 生成密钥(如已有则跳过)

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

2. 复制公钥 → 添加到 GitHub Settings

cat ~/.ssh/id_rsa.pub

3. 配置 SSH(解决 22 端口问题,可选但推荐)

echo '

Host github.com

Hostname ssh.github.com

Port 443

User git

IdentityFile ~/.ssh/id_rsa

IdentitiesOnly yes

' >> ~/.ssh/config

4. 测试连接

ssh -T git@github.com

5. 设置远程地址

git remote add origin git@github.com:<用户名>/<仓库名>.git

6. 推送

git push --set-upstream origin main

相关推荐
一条泥憨鱼19 分钟前
【从0开始学习计算机网络】| 邮件协议入门:SMTP、POP3、IMAP
linux·运维·计算机网络·github
DevLoom_1 小时前
MacBook 256GB到底够不够用,日常怎么清理空间?
macos·mac空间清理·mac磁盘空间不足
lpfasd1232 小时前
2026年第36周GitHub趋势周报:Agent技能化、MCP工具化与AI工程化加速
人工智能·github
OsDepK12 小时前
项目快速Git至仓库(完整版)
大数据·git·elasticsearch·搜索引擎
编程的一拳超人13 小时前
DeepSeek Harness Linux/macOS/Windows 本地下载、启动与模型配置指南
linux·windows·macos·deepseek
时凌云.13 小时前
【2026最新】JDK 下载安装与环境配置全教程(Windows/Mac/Linux 三平台,零基础友好)
java·linux·macos
OpenTiny社区14 小时前
【直播分享】GenUI SDK 技术公开课第二讲 | GenuiChat 核心配置深度解析
前端·github
dong_junshuai14 小时前
每天一个开源项目#93 HyperFrames:4.69万星的 HTML 视频渲染框架
开源·html·github
峰向AI15 小时前
别再忍受杂乱的桌面了,这款窗口管理器让 Windows 也有平铺式操作
github
cnnews16 小时前
Ubuntu 编译 postmarketOS
linux·运维·arm开发·ubuntu·github·音视频