Namecheap cPanel添加GitHub私有仓库SHA-1 RSA密钥报错解决方案
Namecheap cPanel连接GitHub私有仓库SHA-1密钥报错解决方案
触发报错:
ERROR: You're using an RSA key with SHA-1, which is no longer allowed. Please use a newer client or a different key type.
故障原因:GitHub已停止支持基于SHA-1哈希算法的RSA密钥做SSH认证,Namecheap共享主机自带的cPanel可视化密钥生成功能默认生成的旧版RSA密钥、以及自行上传的早年生成的RSA密钥,大多使用SHA-1签名,会直接被GitHub服务端拒绝连接。
优先方案:生成Ed25519类型SSH密钥
这是GitHub当前推荐的密钥类型,生成速度快、安全性高,兼容绝大多数cPanel环境:
- 登录cPanel面板,找到「SSH Access」入口进入
- 点击「Manage SSH Keys」,先删除之前绑定的、触发报错的旧RSA密钥(删除前确认密钥没有绑定其他需要使用的服务,避免影响其他业务连接)
- 点击「Generate New Key」,按以下参数配置:
- 密钥名称保持默认
id_ed25519即可 - 密钥类型下拉选择Ed25519,不要选默认的RSA
- 按需设置密钥密码,建议设置提升安全性,记住密码后续拉取仓库时可能需要验证
- 密钥位数不需要手动调整,Ed25519默认参数就满足GitHub的安全要求
- 密钥名称保持默认
- 密钥生成完成后,回到密钥列表,找到刚生成的公钥,点击「View/Download」完整复制公钥内容
- 登录GitHub账号,进入个人设置下的SSH密钥管理页面,新增SSH密钥,把复制的公钥粘贴后保存
- 回到cPanel的SSH密钥管理页,找到刚生成的对应私钥,点击「Authorize」完成授权
- 进入cPanel自带的「Terminal」功能,执行
ssh -T git@github.com测试连接,返回包含你的GitHub用户名的认证成功提示,就说明配置完成,可以正常操作私有仓库。
备选方案:生成符合SHA-2要求的RSA密钥
如果你的cPanel环境OpenSSH版本过低(低于7.2,不支持Ed25519),或者业务场景必须使用RSA密钥,不要用cPanel可视化界面生成RSA密钥,直接在终端手动生成符合要求的密钥:
- 进入cPanel的「Terminal」功能,执行以下命令生成4096位、使用SHA-256签名的RSA密钥:
ssh-keygen -t rsa -b 4096 -E SHA256 -f ~/.ssh/id_rsa - 按提示设置密钥密码,完成生成后执行以下命令校验密钥算法是否符合要求:
返回结果中指纹以ssh-keygen -l -E SHA256 -f ~/.ssh/id_rsa.pubSHA256:开头即为合格 - 后续操作和优先方案一致:复制公钥添加到GitHub的SSH密钥列表,授权cPanel侧私钥,测试连接即可。
常见问题排查
- 配置新密钥后仍报相同错误:在终端执行
ssh -vT git@github.com查看调试日志,确认连接过程中实际加载的是你新生成的密钥,没有优先读取目录下残留的旧失效密钥 - 密钥加载正常仍连接失败:检查
~/.ssh/路径下是否存在config文件,没有的话新建一个,写入以下配置强制GitHub连接使用新密钥、兼容签名算法:
如果你用的是RSA密钥,把Host github.com HostName github.com User git IdentityFile ~/.ssh/id_ed25519 PubkeyAcceptedAlgorithms +ssh-rsa HostkeyAlgorithms +ssh-rsaIdentityFile后面的路径改成~/.ssh/id_rsa即可 - 不要尝试升级cPanel环境的OpenSSH客户端:Namecheap共享主机没有root权限,系统组件由平台统一维护,自行编译安装新版本客户端容易出现权限兼容问题,直接换符合要求的密钥是成本最低的解决方式。
内容的提问来源于stack exchange,提问作者Sodmond
相关产品推荐
相关产品推荐

