HTTPS 推送失败?改用 SSH 一键搞定

1. 问题背景

在自动化测试环境中推送代码时,origin 原本配置为 HTTPS 地址:

bash 复制代码
https://github.com/XXX/ProjiectName.git

该环境没有交互式终端,无法手动输入账号密码,也没有安装 gh 或配置 credential helper,因此执行 git push 时报错:

text 复制代码
could not read Username for 'https://github.com'

2. 先确认 SSH 可用

本机已有密钥 ~/.ssh/id_ed25519,并且执行:

bash 复制代码
ssh -T git@github.com

返回了 Hi githubname,说明 GitHub 已识别这把公钥,SSH 通道可用。

3. 改 remote 再用 SSH 推送

将 remote 地址从 HTTPS 切换为 SSH 格式:

bash 复制代码
git remote set-url origin git@github.com:XXX/ProjiectName.git
git push -u origin HEAD

Git 改走 git@github.com:...,使用 SSH 密钥完成认证,推送成功。

4. 与 HTTPS 的差异对比

对比项 HTTPS SSH
地址形态 https://github.com/业主/仓库.git git@github.com:业主/仓库.git
认证方式 Token / 密码 / credential helper ~/.ssh 私钥
本场景表现 无凭据 → 失败 已有密钥且已加入 GitHub → 成功

5. 注意事项

  • git remote set-url 只修改当前仓库的 remote URL,不会改动全局 git config 中的用户名、邮箱等设置。
  • 切换后,在本仓库内执行 git push / git pull 都会默认走 SSH。
  • 若后续仍需使用 HTTPS,需要配置 Personal Access Token,或安装并登录 gh
相关推荐
鱼月半15 小时前
两台电脑直连网络不通怎么办?
linux·网络协议
多巴胺耐受1 天前
解决WSL关闭终端就会关机的问题
ssh
captain3761 天前
网络原理(7)-NAT(Network Address Translation)
java·网络·网络协议·java-ee
爱研究的小梁1 天前
异构链路科普:5G/4G、卫星、专网、WiFi、光纤,如何聚合工作?
网络·网络协议·udp·信息与通信
梦想平凡1 天前
情怀棋牌源代码焕新记录(一):全新国风UI与原版工程梳理
java·服务器·数据库·websocket·网络协议·cocos2d
K成长日志1 天前
DALI-2协议简介
网络·网络协议·智能楼宇·智能照明·智能建筑·dali
Shota Kishi1 天前
Solana Shreds 的 UDP 直投架构:Shredstream UDP Forwarding 的设计与实现
网络协议·架构·udp·区块链·solana
玄芯散人2 天前
【筑基·055】TCP vs UDP:可靠和快速的取舍
网络协议·tcpdump
Databuff2 天前
五款主流 SSH 免费工具介绍
运维·ssh·运维开发
江畔柳前堤2 天前
On-Policy Distillation 全景深潜
人工智能·网络协议·目标检测·http·机器学习·chatgpt·重构