端口443在git bash向github推送时的步骤
端口443在git bash向github推送时的步骤
你的环境可能因防火墙限制无法使用默认的 SSH 端口(22),因此需要改用 SSH over HTTPS(端口 443) 进行 Git 推送。
github与git bash绑定问题详见博主先前写过的参考博文:
https://blog.csdn.net/2301_79012058/article/details/145613815?fromshare=blogdetail&sharetype=blogdetail&sharerId=145613815&sharerefer=PC&sharesource=2301_79012058&sharefrom=from_link
以下是完整步骤:
1. 确保 SSH 密钥已配置
① 生成 SSH 密钥(如果尚未生成)
ssh-keygen -t ed25519 -C "your-email@example.com"
(如果系统不支持 ed25519
,改用 -t rsa -b 4096
)
② 将公钥添加到 GitHub
-
复制公钥内容:
cat ~/.ssh/id_ed25519.pub
-
进入 GitHub Settings → SSH and GPG Keys → New SSH Key,粘贴并保存。
2. 配置 SSH 使用端口 443
① 修改 ~/.ssh/config
nano ~/.ssh/config
添加以下内容:
Host github.comHostname ssh.github.comUser gitPort 443IdentityFile ~/.ssh/id_ed25519 # 替换为你的私钥路径
保存并退出(Ctrl + X
→ Y
→ Enter
)。
② 测试 SSH 连接
ssh -T git@ssh.github.com
成功返回:
Hi Westredtomato! You've successfully authenticated, but GitHub does not provide shell access.
如果失败,检查 ~/.ssh/config
是否拼写正确,并确保 SSH 密钥已添加到 GitHub。
3. 初始化 Git 仓库并设置远程 URL
① 初始化本地仓库
git init
git add .
git commit -m "Initial commit"
② 设置远程仓库 URL(使用 SSH over 443)
git remote add origin git@github.com:Westredtomato/aTestGitPractice.git
或(显式指定端口 443):
git remote add origin ssh://git@ssh.github.com:443/Westredtomato/aTestGitPractice.git
③ 检查远程 URL
git remote -v
正确输出:
origin git@github.com:Westredtomato/aTestGitPractice.git (fetch)
origin git@github.com:Westredtomato/aTestGitPractice.git (push)
origin ssh://git@ssh.github.com:443/Westredtomato/aTestGitPractice.git (fetch)
origin ssh://git@ssh.github.com:443/Westredtomato/aTestGitPractice.git (push)
4. 推送代码到 GitHub
① 推送到 master
或 main
分支
git push -u origin master
如果 GitHub 默认分支是 main
(推荐):
git branch -M main # 重命名本地分支
git push -u origin main
② 如果遇到 Permission denied
-
检查
~/.ssh/config
是否正确。 -
确保
git remote -v
显示的是git@github.com
或ssh://git@ssh.github.com:443
。 -
重新加载 SSH 代理:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519
5. 特殊情况处理
① 如果仍然无法连接
-
改用 HTTPS(临时方案):
git remote set-url origin https://github.com/Westredtomato/aTestGitPractice.git git push -u origin main
(需要输入 GitHub 用户名和密码或 Personal Access Token)
-
检查网络代理:
git config --global --unset http.proxy git config --global --unset https.proxy
② 如果远程分支不匹配
-
本地
master
,远程main
:git branch -M main # 重命名本地分支 git push -u origin main
最终检查
-
SSH 连接测试:
ssh -T git@github.com
-
远程 URL 检查:
git remote -v
-
分支匹配:
git branch