旧版Plesk Git扩展同步GitHub仓库报错解决方案咨询
可行解决方案
优先提供HTTPS协议实现方案,SSH方案作为备用。
HTTPS协议方案(优先)
HTTPS返回403报错核心原因有两个:一是CentOS 6.10默认自带的网络组件(nss、curl、openssl)版本过旧,仅支持TLS1.0及以下协议,GitHub早已禁用低于TLS1.2的HTTPS连接;二是Git 1.5版本过旧,不支持交互式密码输入,且GitHub已在2021年停止支持账号密码认证,直接填写裸HTTPS仓库地址无法通过鉴权。按以下步骤操作即可解决:
- 先升级系统底层网络组件到CentOS 6源内的最新版本,补齐TLS1.2支持,执行命令:
yum update -y nss curl libcurl openssl
- 在GitHub账号设置页,生成仅勾选
repo权限范围的个人访问令牌(PAT)。 - 在Plesk Git扩展的远程仓库地址栏,填写带认证信息的HTTPS地址,格式如下:
https://<你的GitHub用户名>:<刚生成的PAT令牌>@github.com/Sollutia/mediavaca.com.git
填写后直接触发同步即可,该方式绕开老版本Git的交互式认证缺陷,直接携带鉴权信息发起请求,配合更新后的TLS组件可正常完成连接。
注意:PAT不要授予除repo外的多余权限,避免安全风险。
SSH协议备用方案
之前SSH连接报错的核心原因有两点:一是生成的密钥强度不足,GitHub当前要求RSA密钥长度不低于2048位;二是SSH配置规则错误,GitHub的443端口SSH服务需要指向ssh.github.com主机,而非直接连接github.com的443端口(该端口为HTTPS服务端口,会直接拒绝SSH握手)。按以下步骤操作:
- 生成符合强度要求的无密码RSA密钥,执行命令:
ssh-keygen -t rsa -b 4096 -C "plesk-git-sync" -f ~/.ssh/github_rsa
执行过程中全程回车,不要设置私钥密码,Plesk Git扩展不支持加载带密码的私钥。
- 将生成的
~/.ssh/github_rsa.pub文件内的公钥内容,添加到GitHub账号的SSH密钥列表中。 - 修改
~/.ssh/config文件,写入正确的连接规则:
Host github.com HostName ssh.github.com User git Port 443 IdentityFile ~/.ssh/github_rsa StrictHostKeyChecking no
- 先在服务器命令行执行
ssh -T git@github.com测试连接,返回认证成功提示后,在Plesk Git扩展内填写SSH格式的仓库地址:
git@github.com:Sollutia/mediavaca.com.git
即可正常完成同步。
内容的提问来源于stack exchange,提问作者mamoros
相关产品推荐
相关产品推荐

