首页 > 解决方案 > 如何让 Bitbucket 管道使用的 SSH 用户只能访问特定目录?

问题描述

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

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

标签: linuxbitbucketdevopsubuntu-18.04bitbucket-pipelines

解决方案


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


推荐阅读