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。
相关推荐
|_⊙2 小时前
应用层协议HTTP与HTTPS
网络·网络协议·http
zxanz12 小时前
证书运维自动化,守住业务 HTTPS 底线
运维·https·自动化
Lsetea3 小时前
Git访问HTTPS证书不受信任:用URL级sslCAInfo限定私有CA范围
git·https·开发工具·ssl证书·ca证书
byte轻骑兵3 小时前
【PBAP】规范精讲[9]: 蓝牙PBAP的互联互通法则——GOEP互操作性要求深度解析
网络协议·人机交互·蓝牙协议·pbap
路由侠内网穿透.3 小时前
本地部署开源 WSGI HTTP 服务器 Gunicorn 并实现外部访问
运维·服务器·网络·网络协议·http·开源
箓维3 小时前
TCP Socket的基础实现
网络·网络协议·tcp/ip
川石课堂软件测试12 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
云梦谭13 小时前
让 Linux 主动连接 Windows:配置 Windows 11 SSH 服务端
linux·windows·ssh
明天也要努力学习14 小时前
IP 协议的相关特性
网络·网络协议·tcp/ip
2501_9160074717 小时前
抓包工具功能对比,TraceEagle、Charles、Fiddler、Wireshark、mitmproxy 差别
前端·网络协议·ios·adb·https·fiddler·wireshark