Git推送失败:权限拒绝与哈希算法无法识别问题求助
Git连接Plesk仓库问题解决方案
SSH连接权限拒绝问题
- 检查Git使用的SSH密钥:手动执行
GIT_SSH_COMMAND="ssh -v" git clone ssh://ssnadmin@mydomain/var/www/vhosts/mydomain.com/plesk-git/ngx.git,查看SSH调试信息,确认是否调用了正确的密钥。如果Fork默认使用了非系统默认密钥,在Fork设置里指定你用于SSH登录的私钥文件。 - 验证Plesk仓库权限:登录Plesk面板,找到对应域名的Git仓库,确认
ssnadmin用户被赋予读写权限。Plesk的Git仓库权限独立于系统用户SSH权限,需单独配置。 - 确认仓库路径正确性:Plesk创建的Git仓库物理路径通常是
/var/www/vhosts/[你的域名]/plesk-git/[仓库名].git,确保Git远程URL里的路径和实际路径完全一致。
HTTPS连接hash算法错误问题
- 检查Plesk仓库完整性:登录服务器,进入仓库物理目录(比如
/var/www/vhosts/ngx.speedskatingnews.info/plesk-git/ngx.git),执行git fsck检查仓库是否损坏,确认.git/objects、.git/refs等核心目录存在且正常。如果仓库初始化失败,删除后在Plesk重新创建。 - 修正HTTPS远程URL:正确的Plesk Git HTTPS URL格式应为
https://ssnadmin@ngx.speedskatingnews.info/plesk-git/ngx.git,确保包含用户名,且路径无多余斜杠。执行git remote set-url origin https://ssnadmin@ngx.speedskatingnews.info/plesk-git/ngx.git更新远程地址。 - 匹配Git版本:服务器端和本地Git版本差异可能导致hash算法不兼容。登录服务器执行
git --version,本地也执行该命令,确保两者都使用2.20以上版本,若服务器版本过低,升级Git到最新稳定版。 - 清理本地缓存:执行
git remote remove origin,再重新添加远程地址;同时执行git gc --prune=now清理本地Git缓存,避免旧数据干扰。
内容的提问来源于stack exchange,提问作者Lars
相关产品推荐
相关产品推荐

