如何让 Bitbucket 管道使用的 SSH 用户只能访问特定目录?

How to give an SSH user being used by Bitbucket pipelines, access to only a specific directory?

我正在为我们的 Laravel 项目使用 CI/CD 的 bitbucket 管道。我已成功设置我的 bitbucket 管道以自动部署到我们的数字海洋 VPS,管道首先通过 ssh 进入我们的服务器,然后执行 deploy.sh shell 脚本,该脚本已存在于 VPS 从回购中提取所有更改。

现在一切正常,但我想限制管道使用的 SSH 用户只能访问放置项目的特定目录,而不是整个服务器,因为这样所有用户都可以 运行 管道并上传一个 deploy.sh 到我们服务器上的推送和执行命令。有什么方法可以保护我们的服务器免受这种情况的影响,并且只将 ssh 限制到特定目录吗?

在多用户系统中执行此操作的常用方法是 chroot-jail。但是,对于 VPS,您可以简单地为管道创建一个新用户。将您的 deploy.sh 存储在该用户的主目录中,并将项目也部署在管道用户的主目录中。