将 deployKey 配置到码云的部署公钥之后,进行Git 部署失败

在将 deployKey 配置到码云的部署公钥之后,进行 Git 部署失败。我可以确定不是公钥配置错了,因为已经重置过很多次了,都不行。【另外,之前的还能用,不过重置公钥之后也失败了】

代码托管在码云 git@gitee.com

Appid :YRvUlQtRojKSSfkSbOAyaSGU-MdYXbMMI

[Node.js] 使用 Node.js v14.18.1, Node SDK 3.8.0, JavaScript SDK 4.12.0

[2021-12-12T09:36:27.432000000Z][system] 部署失败:获取项目代码失败: 无访问权限,请确认 deployKey 配置正确: run git clone --recursive --depth 1 -b return 128: Cloning into '/tmp/tmp.vK9Yxzh9eN/app'... /home/ubuntu/.ssh/config line 6: Unsupported option "compressionlevel"
Load key "/tmp/tmp.vK9Yxzh9eN/private.key": invalid format
git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

我认为可能是 Unsupported option "compressionlevel"这里出了问题

LeanCloud 云引擎这边的 ssh 配置是

  ConnectTimeout 15
  Compression yes
  CompressionLevel 6
  StrictHostKeyChecking no

其中 CompressionLevel 6 是很常见的配置,sshd (openssh 服务端)默认也是允许 Compression 的。建议和 gitee 方面反馈问题。

我认为还是这一块出了问题,原因是另外一个项目之前配置的公钥是可以用的,重置公钥之后就不行了【新公钥也以添加到gitee】

而且出问题是 /home/ubuntu/.ssh/config line 6: Unsupported option "compressionlevel" ,还没到 gitee 方面的问题。

这个报错是 gitee 返回的,是云引擎这边通过 ssh 连接 gitee 的时候,ssh 服务端(gitee)报错不支持 ssh 客户端(云引擎)的 CompressionLevel 6 选项。
所以这个是 ssh 服务端和客户端不兼容的问题,gitee 和 leancloud 至少有一方需要修改才能兼容。如之前的回复所述,「CompressionLevel 6」是比较通用的配置,连接其他代码托管平台也没有碰到问题,所以我们这里倾向于不为某一特定的代码托管平台做特殊的兼容处理。

嗯,我了解了,只不过之前配置的公钥还能使用。如果不是leancloud这边改了的话就是gitee改了,我之后用github再试下。

我试了下github可以拉取,看来是gitee这边的问题。

感谢反馈,我们这两天测试了 Gitee、Coding 和阿里云 Code,都没有重现。但确实也有其他用户反馈这个问题,我们还在继续关注。

你提到的 compressionlevel 是一个警告,应该与这个问题无关,我们现在也已经去掉了这个会导致警告的配置,还在观察效果。

我之后又试了下,发现 github 和 gitee 都不行,确实没有之前的报错了,但依旧是没有权限。

[2021-12-17T13:16:01.277000000Z][system] 部署失败:获取项目代码失败: 无访问权限,请确认 deployKey 配置正确: run git clone --recursive --depth 1 -b return 128: Cloning into '/tmp/tmp.Ke4fVK0jcG/app'... Load key "/tmp/tmp.Ke4fVK0jcG/private.key": invalid format
git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

[2021-12-17T13:19:01.724000000Z][system] 部署失败:获取项目代码失败: 无访问权限,请确认 deployKey 配置正确: run git clone --recursive --depth 1 -b return 128: Cloning into '/tmp/tmp.7iGcema32V/app'... Load key "/tmp/tmp.7iGcema32V/private.key": invalid format
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

感谢反馈,我们发现是较新的应用生成的 deployKey 末尾缺少一个换行,现已在华北和国际版修复这个问题,其他节点会在本周内修复。