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/

Не требуется пароль / подвергается.

Итак, вот мои вопросы:

  1. Это безопасно настроить бегун, как это?
  2. Есть официальный или лучший способ сделать то, что я хочу? (используйте SSH и SCP безопасно с gitlab-runner)

Я думаю, что не должно быть никаких проблем, но я не эксперт в Linux и SSH, так что...

Спасибо за ваши ответы!

1 ответ

Решение

Это безопасно настроить бегун, как это?

Если только вы выполняете работу, это нормально.

Если кто-то другой (вы не доверяете) может вставить любую произвольную команду в ваш .gitlab-cy.ymlОн может в основном запускать любой произвольный код на вашей виртуальной машине и на другой вашей машине (что, безусловно, не то, что вы хотите).

Вы должны ограничить свой удаленный пользователь YOUR_LOGIN на вашем сервере разработчиков, чтобы сделать минимум, необходимый ForceCommand (scponly или просто вынужденная команда scp в определенный каталог), блокировать переадресацию портов и, возможно, использовать chroot.

Другие вопросы по тегам