Gitlab бегун и брелок
Недавно я настроил 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/
Не требуется пароль / подвергается.
Итак, вот мои вопросы:
- Это безопасно настроить бегун, как это?
- Есть официальный или лучший способ сделать то, что я хочу? (используйте SSH и SCP безопасно с gitlab-runner)
Я думаю, что не должно быть никаких проблем, но я не эксперт в Linux и SSH, так что...
Спасибо за ваши ответы!
1 ответ
Это безопасно настроить бегун, как это?
Если только вы выполняете работу, это нормально.
Если кто-то другой (вы не доверяете) может вставить любую произвольную команду в ваш .gitlab-cy.yml
Он может в основном запускать любой произвольный код на вашей виртуальной машине и на другой вашей машине (что, безусловно, не то, что вы хотите).
Вы должны ограничить свой удаленный пользователь YOUR_LOGIN
на вашем сервере разработчиков, чтобы сделать минимум, необходимый ForceCommand
(scponly
или просто вынужденная команда scp
в определенный каталог), блокировать переадресацию портов и, возможно, использовать chroot.