You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置`hub create`的SSH凭证?排查hub create 401未授权错误

解决hub create的SSH凭证配置与HTTP协议问题

首先,你遇到的HTTP 401 Unauthorized错误,大概率是因为hub默认使用了HTTP协议而非SSH来连接GitHub,哪怕你已经配置了SSH密钥。咱们一步步来排查和解决:

一、确认SSH密钥是否正确加载并生效

  1. 检查已加载的SSH密钥
    打开终端执行:

    ssh-add -l
    

    如果输出里没有你为GitHub生成的公钥指纹,说明密钥没加载到SSH代理里。执行以下命令加载(替换成你的密钥文件名,比如id_rsa):

    ssh-add ~/.ssh/id_rsa
    

    如果你用的是macOS,想让密钥重启后自动加载,可以加上-K参数:

    ssh-add -K ~/.ssh/id_rsa
    
  2. 测试SSH连接GitHub
    执行以下命令验证SSH是否能正常访问GitHub:

    ssh -T git@github.com
    

    如果看到类似Hi YourUsername! You've successfully authenticated, but GitHub does not provide shell access.的输出,说明SSH凭证完全没问题。

二、检查Git为何使用HTTP协议

  1. 查看当前仓库的远程配置
    在你的本地仓库目录下执行:

    git remote -v
    

    如果输出的origin地址是https://github.com/YourUsername/YourRepo.git这种HTTP格式,那当前仓库确实在用HTTP协议连接GitHub。

  2. 检查全局Git配置是否强制HTTP
    执行以下命令查看全局配置:

    git config --global --list
    

    留意有没有类似url.https://github.com/.insteadOf=git@github.com:或者hub.protocol=https的配置项——这些会强制Git或hub使用HTTP协议。

三、配置hub使用SSH协议

  1. 全局设置hub默认用SSH
    执行以下命令让hub所有操作默认使用SSH:

    git config --global hub.protocol ssh
    
  2. 修改当前仓库的远程地址为SSH格式
    如果当前仓库的远程还是HTTP,执行以下命令替换(替换成你的用户名和仓库名):

    git remote set-url origin git@github.com:YourUsername/YourRepo.git
    

四、额外排查:清除可能的HTTP凭证缓存

如果之前用过HTTP方式访问GitHub,系统可能缓存了错误的凭证。比如macOS用户可以执行以下命令清除GitHub的HTTP凭证:

git credential-osxkeychain erase
host=github.com
protocol=https

输入完后按回车两次即可清除。

现在再尝试执行hub create -p,应该就能正常创建私有仓库了。

内容的提问来源于stack exchange,提问作者GameKyuubi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 20:02:54