linux - 如何让 Bitbucket 管道使用的 SSH 用户只能访问特定目录?
问题描述
我正在为我们的 Laravel 项目使用用于 CI/CD 的 bitbucket 管道。我已成功设置我的 bitbucket 管道以自动部署到我们的数字海洋 VPS,管道首先 ssh 进入我们的服务器,然后执行deploy.sh
shell 脚本,该脚本已经存在于 VPS 上,该脚本从 repo 中提取所有更改。
现在一切正常,但我想限制管道使用的 SSH 用户只能访问放置项目的特定目录而不是整个服务器,因为这样所有用户都可以运行管道并上传部署.sh 以及在我们的服务器上推送和执行命令。有什么办法可以保护我们的服务器免受这种情况的影响,并且只将 ssh 限制到特定目录?
解决方案
在多用户系统中执行此操作的常用方法是 chroot-jail。但是,对于 VPS,您可以简单地为管道创建一个新用户。将您的 deploy.sh 存储在该用户的主目录中,并将项目部署到管道用户的主目录中。
推荐阅读
- go - 如何获取 gRPC 响应限制
- mongodb - 指定数据库名称时无法连接到 MongoDB
- android - Android Java Dagger Inject Problems
- reactjs - Material UI DateRange Picker --> DateTimeRange Picker?
- java - Java中逗号后只保留2位小数
- c++ - vscode, mingw, g++, 头文件包括从子目录失败
- python - 发送机器人也可以访问的频道
- flutter - Flutter:如何在流外访问数据和 NotifyListener
- python - AWS API 网关 + SQS + Lambda + 从 Lambda 获取响应到 API
- html - Bootstrap 5 - justifty-content-end 不工作