首页 > 解决方案 > 如何在 Plesk 中为同一域的每个子域创建新的公钥

问题描述

我创建了一些通过 http 进行通信的组件。它们共享相同的顶级域。mydomain.io。现在,在集成时,它们在相同的虚拟服务器/Plesk 实例上运行。

问题:想要从 GitHub 为第二个子域 (egymydomain.io) 创建自动拉取请求失败,因为 Plesk 发现相同的公钥已用于另一个子域 (egxmydomain.io)。哪个是对的。

这是来自 Plesk 的错误消息。

Deploying files to y.mydomain.io
Cloning into bare repository '/var/www/vhosts/mydomain.io/git/myapp-y.git'...
Public key for the server at 'github.com' is already known in '/var/www/vhosts/mydomain.io/.ssh/git_known_hosts'.
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

问题:如何为每个新子域强制执行新的公钥?我认为不共享相同的公钥是明智的。

我正在使用:Plesk Obsidian 18.0.38 更新 #3。

任何提示表示赞赏。

谢谢

标签: githubpleskpublic-key-encryption

解决方案


不幸的是,Plesk 目前不支持多键,据此。有一些功能请求(比如这个),但从那以后没有任何变化。

我认为不共享相同的公钥是明智的。

没关系,如果您使用的是同一个 GitHub 帐户。然而,问题在于 GitHub 不允许您将相同的密钥添加到多个存储库。

所以,简短的回答是,不,那是不可能的

但是,如果您能够通过 SSH 连接,您可能希望通过启动标准ssh-keygen命令手动添加密钥。前段时间这在我的 Plesk 实例上确实有效,但考虑到最新的 Obsidian 更新,我无法判断这是否仍然可行。

如果您决定以这种方式解决它,您将无法从控制面板使用默认的“Git”Plesk 扩展,并且必须通过 SSH 手动启动部署序列(一些 .sh 脚本可能会有所帮助)。


推荐阅读