Peut-être que la prise en charge de GitHub pour les clés de déploiement est ce que vous recherchez? Pour citer cette page:
Quand dois-je utiliser une clé de déploiement?
Simple, lorsque vous avez un serveur qui a besoin d'un accès par extraction à un seul dépôt privé. Cette clé est directement attachée au référentiel et non à un compte utilisateur personnel.
Si c'est ce que vous essayez déjà et que cela ne fonctionne pas, vous voudrez peut-être mettre à jour votre question avec plus de détails sur les URL utilisées, les noms et l'emplacement des fichiers clés, etc.
Passons maintenant à la partie technique: comment utiliser votre clé SSH avec Jenkins?
Si vous avez, par exemple, un jenkins
utilisateur unix, vous pouvez stocker votre clé de déploiement dans ~/.ssh/id_rsa
. Lorsque Jenkins essaie de cloner le dépôt via ssh, il essaie d'utiliser cette clé.
Dans certaines configurations, vous ne pouvez pas exécuter Jenkins en tant que propre compte d'utilisateur, et peut-être pas non plus utiliser l'emplacement de la clé ssh par défaut ~/.ssh/id_rsa
. Dans de tels cas, vous pouvez créer une clé à un emplacement différent, par exemple ~/.ssh/deploy_key
, et configurer ssh
pour l'utiliser avec une entrée dans ~/.ssh/config
:
Host github-deploy-myproject
HostName github.com
User git
IdentityFile ~/.ssh/deploy_key
IdentitiesOnly yes
Parce que tout ce que vous vous authentifiez auprès de tous les référentiels Github en utilisant git@github.com
et que vous ne voulez pas que la clé ci-dessus soit utilisée pour toutes vos connexions à Github, nous avons créé un alias d'hôte github-deploy-myproject . Votre URL de clonage devient maintenant
git clone github-deploy-myproject:myuser/myproject
et c'est aussi ce que vous mettez comme URL de référentiel dans Jenkins.
(Notez que vous ne devez pas mettre ssh: // devant pour que cela fonctionne.)