2 votes

Runner et porte-clés Gitlab

Récemment, j'ai configuré un Runner Gitlab sur une VM et je voulais ajouter un trousseau de clés sur cette VM pour permettre au Runner d'exécuter des commandes comme scp ou SSH sans exposer mes passphras SSH ( https://www.cyberciti.biz/faq/ssh-passwordless-login-with-keychain-for-scripts/ )

Et quand j'installe gitlab-multi-runner ( https://docs.gitlab.com/runner/install/linux-repository.html ) Je vois un nouveau dossier " gitlab-runner " dans mon /home .

J'ai donc ajouté un mot de passe à cet utilisateur (commande passwd), modifié son .bash_profile comme décrit dans le lien ci-dessus, et généré de nouvelles clés SSH.

Mon runner fonctionne bien, mon .gitlab-ci.yml peut exécuter des commandes scp comme ceci :

scp jon.doe YOUR_LOGIN@DEV_SERVER_ADDRESS:/var/www/

Aucune phrase de passe requise / exposée.

Voici donc mes questions :

  1. Est-il possible de configurer le runner de cette manière ?
  2. Existe-t-il un moyen officiel ou meilleur pour faire ce que je veux ? (utiliser SSH et SCP en toute sécurité avec un gitlab-runner)

Je pense qu'il ne devrait pas y avoir de problème, mais je ne suis pas un expert en Linux et SSH donc...

Merci pour vos réponses !

0voto

Jakuje Points 6207

Est-il possible de configurer le runner de cette manière ?

Si vous êtes le seul à exécuter les travaux, tout va bien.

Si quelqu'un d'autre (en qui vous n'avez pas confiance) peut introduire n'importe quelle commande arbitraire dans votre système d'information .gitlab-cy.yml il peut en fait exécuter n'importe quel code arbitraire sur votre machine virtuelle et sur votre autre machine (ce qui n'est certainement pas ce que vous souhaitez).

Vous devez restreindre l'accès de votre utilisateur distant YOUR_LOGIN sur votre serveur de développement pour faire le minimum requis par ForceCommand ( scponly ou simplement la commande forcée à scp dans un répertoire spécifique), bloquer le transfert de port et éventuellement utiliser le chroot.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X