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

Plesk环境下Bitbucket主机密钥冲突致Git克隆失败求助

问题描述

已执行以下命令尝试修复Bitbucket仓库克隆失败问题:

ssh-keygen -f /var/www/vhosts/DOMAIN/.ssh/git_known_hosts -R bitbucket.org
curl https://bitbucket.org/site/ssh >> /var/www/vhosts/buchungsformular.spar-mit.com/.ssh/git_known_hosts

但克隆操作仍无法完成,Plesk返回三类关键错误:

  • 'bitbucket.org'的公钥已存在于/var/www/vhosts/DOMAIN/.ssh/git_known_hosts中,ECDSA主机密钥与IP地址'xxx'的密钥不符,违规密钥在第1行,匹配密钥在第8行,严格校验规则导致主机密钥验证失败
  • do_known_hosts: hostkeys_foreach failed: Permission denied:尝试将Bitbucket公钥写入指定文件时遭遇权限拒绝
  • 远程主机标识已更改,RSA密钥指纹为SHA256:4......,移除违规密钥后克隆问题仍未解决
解决方案

1. 修复.ssh目录及文件权限

权限拒绝是核心障碍,先确保目标目录和文件的权限与归属正确:

# 设置.ssh目录权限为700(仅所有者可读写执行)
chmod 700 /var/www/vhosts/DOMAIN/.ssh
# 设置git_known_hosts文件权限为600(仅所有者可读写)
chmod 600 /var/www/vhosts/DOMAIN/.ssh/git_known_hosts
# 将目录及文件归属改为网站对应的系统用户(替换为实际用户,比如Plesk订阅用户、apache/nginx)
chown YOUR_WEB_USER:YOUR_WEB_USER /var/www/vhosts/DOMAIN/.ssh -R

2. 彻底重置Bitbucket主机密钥

直接删除旧的已知主机文件,重新获取官方密钥,避免残留冲突项:

# 删除旧的git_known_hosts文件
rm -f /var/www/vhosts/DOMAIN/.ssh/git_known_hosts
# 重新拉取Bitbucket官方主机密钥并写入文件
curl https://bitbucket.org/site/ssh > /var/www/vhosts/DOMAIN/.ssh/git_known_hosts
# 再次修正文件权限与归属
chmod 600 /var/www/vhosts/DOMAIN/.ssh/git_known_hosts
chown YOUR_WEB_USER:YOUR_WEB_USER /var/www/vhosts/DOMAIN/.ssh/git_known_hosts

3. 测试SSH连接有效性

明确指定使用修复后的已知主机文件,测试与Bitbucket的SSH连接:

ssh -o UserKnownHostsFile=/var/www/vhosts/DOMAIN/.ssh/git_known_hosts git@bitbucket.org

若返回logged in as YOUR_USERNAME.则说明连接正常,此时可重新尝试克隆仓库。

4. 配置Git全局使用指定已知主机文件(可选)

为避免每次克隆都手动指定文件,可配置Git全局参数:

git config --global core.sshCommand "ssh -o UserKnownHostsFile=/var/www/vhosts/DOMAIN/.ssh/git_known_hosts"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:13:01