0

我有一个服务器example.com。我需要运行命令来构建 Satis。我添加了文件 index.php,我在其中编写了<?php echo (' <command for satis build> ');.

当我在服务器上执行这个命令时,我输入了 GitLab 的登录名和密码。我在我的用户 ( user-example) 下执行此操作。但是当我example.com在网络浏览器中打开时,我看到一个错误:

主机密钥验证失败。
致命:无法从远程存储库中读取。

请确保您具有正确的访问权限
并且存储库存在。

发生这种情况是因为脚本在 user 下运行www-data

所以,对于我的用户,user-example我可以创建 ssh-keys 并将其用于 GitLab,但是我可以为 user 创建 ssh-keyswww-data吗?是安全还是不安全?如果我不应该这样做,我如何使用网络浏览器(使用 URL)更新 Satis?

4

1 回答 1

0

您可以在 Satis 主机上放置一个简单的脚本,该脚本将接受来自 Gitlab 的 Push Event webhook(但如果您不运行自己的 gitlab 服务器,则必须可以从 gitlab 访问 satis 主机)。

您可以从项目的设置页面 (/settings/integrations) 设置 webhook。填写主机/端口和机密信息,然后选择您想要接收的任何事件(对于这个推送事件应该足够了)。除非您有 ssl 证书,否则请务必取消选中“启用 SSL 验证”,否则 webhook 将超时。确保在您的脚本中查找X-Gitlab-Token标头并验证您在创建集成时放入的密钥的值。

验证后,您实际上不需要关心推送中的内容,因为您所做的只是触发 Satis 构建。

需要注意的一点是,对于低于 10.6 版本的 Gitlab,默认情况下禁用了对本地网络的 webhook 访问。您可以在此处阅读原因以及如何重新启用本地访问。

于 2019-12-10T22:17:01.683 回答