最近,我在虚拟机上配置了一个 Gitlab Runner,我想在该虚拟机上添加钥匙串,以允许运行器执行 scp 或 SSH 等命令,而不会暴露我的 SSH 密码(https://www.cyberciti.biz/faq/ssh-passwordless-login-with-keychain-for-scripts/)
当我安装 gitlab-multi-runner 时(https://docs.gitlab.com/runner/install/linux-repository.html) 我 看到gitlab-runner
我 的 文件夹 " " 中有 个 新 文件 夹/home
.
因此我为该用户添加了一个密码(passwd 命令),按照上面链接的描述编辑其 .bash_profile,并生成新的 SSH 密钥。
我的运行器工作正常,我的 .gitlab-ci.yml 可以执行如下 scp 命令:
scp jon.doe YOUR_LOGIN@DEV_SERVER_ADDRESS:/var/www/
无需密码或不暴露密码。
我的问题是:
- 像这样配置运行器安全吗?
- 有没有官方的或者更好的方法来做我想做的事?(使用 gitlab-runner 安全地使用 SSH 和 SCP)
我认为应该没有问题,但我不是 Linux 和 SSH 专家,所以......
谢谢您的回答!
答案1
像这样配置运行器安全吗?
只要你正在运行这些作业就可以了。
如果其他人(您不信任的人)可以将任意命令推送到您的.gitlab-cy.yml
,他基本上可以在您的虚拟机和其他机器上运行任意代码(这当然不是您想要的)。
您应该限制开发服务器上的远程用户YOUR_LOGIN
执行所需的最少操作ForceCommand
(scponly
或仅强制命令scp
进入特定目录)、阻止端口转发并可能使用 chroot。