Problème connexion Gitlab

Bonjour,

j’ai un problème d’authentification lors de l’import de module.
J’ai suivi la procédure et les échanges Intégration GIT.

settings module :
{
“type”: “git”,
“origin”: {
“uri”: “git@git-oab.si.fr.intraorange:ladom/application/ladnext_param_tech.git”,
“branch”:“master”
}
}

paramètre système

EXPORT_MODULE_EXPLODED = yes

docker-compose

volumes:
- C:\Users\VFWW3161.ssh:/usr/local/tomcat/.ssh:ro

J’ai regénéré la clé ssh, sans succès.
Merci de votre aide.

Erreur dans les logs :
2021-03-03 13:11:20,982 ERROR [com.simplicite.objects.System.Module] SIMPLICITE|http://b4fbb4d1bd97:8080||ERROR|designer|com.simplicite.objects.System.Module|importModule||Evénement: Unable to import module Ladnext_param_tech from Git
com.simplicite.util.exceptions.GitException: git@git-oab.si.fr.intraorange:ladom/application/ladnext_param_tech.git: Auth fail
at com.simplicite.util.tools.GitTool.pull(GitTool.java:668)

Commencez par faire le test dans le container mais en dehors de Simplicité, genre:

docker exec -it <id> bash
cd /tmp
git clone <url gitlab>

Si ça ne marche pas comme ça c’est qu’il y a un pb de tuyauterie réseau ou de droits ou autre, et ça ne pourra donc pas non plus marcher depuis Simplicité.

Si ça marche assurez vous que vous créez bien le module dans Simplicité avec le même nom que celui dans le repo (qui n’a rien à voir avec le nom physique du répertoire du repo cloné) que vous enregistrez puis que vous importez le module (c’est cette étape qui clone le repo distant).

PS: Comme vu lors des échanges sur le même (?) sujet avec @adrien-olivier (ici https://community.simplicite.io/t/settings-de-module-non-pris-en-compte-de-maniere-systematique/2973/16) assurez vous que vous n’avez pas un repo cloné “fantôme”. Rapprochez vous peut être de lui car visiblement il maitrise les manips à faire dans votre contexte particulier.

Le test dans le conteneur fonctionne.

J’ai essayé en renommant le nom du module Ladnext_param_tech par ladnext_param_tech mais j’ai le même résultat.

Je n’ai pas accès aux échanges de @adrien-olivier et je ne le connais pas.

On est bien d’accord que dans votre test de clone manuel dans le container vous n’avez pas tapé de mot de passe ou de passphrase de votre clé ou fait une autre manip manuelle (genre accepter de mettre le hostname “git-oab.si.fr.intraorange” dans les known hosts SSH) ? Je pose la question car toutes ces choses manuelles Simplicité ne pourra pas les faire.

Avez vous bien démarré votre container avec, en plus du montage de volume de votre répertoire .ssh, un -e SSH_KNOWN_HOSTS=git-oab.si.fr.intraorange afin de pré-référencer le hostname de votre GitLabdans les known hosts SSH ?

Le message “Auth fail” que vous recevez indique un pb de clonage du repo via SSH, ça semble donc vraiment indiquer un pb de “tuyauterie” ou de droits SSH…

NB: en tout cas le nom du module n’est pas “libre” si vous voulez créer et importer un module disponible sur un répo Git vous devez créer le record dans Administration > Module avec le nom exact (à la casse près) du nom du module qui se trouve dans le repo (l’info est dans le fichier module-info.json - ou package.json pour les anciens modules - à la racine du répo).

Bon après avoir fait un certain nombre de tests dans différents environnements (Docker et non Docker) j’arrive à reproduire, sur l’un des environnements Docker, le symptôme “Auth fail” avec un repo GitHub (alors que le clone manuel dans le container marche bien).

J’avoue ne pas avoir encore identifié où se situe la différence dans ce cas vs les autres environnements où ça marche, SSH est plein de subtilités inattendues… je continuerai mes investigations demain

En attendant passez, si vous le pouvez, temporairement en protocole HTTPS

Dans mon cas c’était un pb de format de clé privée.

Avec une clé au format OpenSSH ça ne marche pas:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
(...
3y43MFpsJVfAcAAAAgc2ltcGxpY2l0ZUBzYW5kYm94LnNpbXBsaWNpdGUuaW8BAgM=
-----END OPENSSH PRIVATE KEY-----

Mais avec la même clé au format PEM ça marche:

-----BEGIN RSA PRIVATE KEY-----
MIIG4wIBAAKCAYEAxfrZABxKkEUnKD4F0R71WOWeBiaqGRc5ixi1UBNUsNs6C3WX
(...)
nPRBy9e9PAxYaNUPde0qjU4aUB8GwB9MwtDPE2z1sUcbXSk6FsFn
-----END RSA PRIVATE KEY-----

La lib Java Jsch utilisée par les libs jGit dans Simplicité ne gère visiblement pas le format OpenSSH contrairement à la ligne de commande git

Pour convertir ma clé du format OpenSSH vers PEM j’ai fait comme suit:

cd .ssh
cp id_rsa id_rsa.bak
ssh-keygen -p -N "" -m pem -f id_rsa

Et il faut relancer le container pour que ça soit pris en compte.

PS:

Pour plus de flexibilité nous avons intégré cette conversion de format de clé privée directement dans le script de démarrage de nos images.

Pour l’instant ça ne concerne que les images 5-alpha[-light] et 5-beta[-light], ce sera disponible dans les images 5-latest[-light] avec la prochaine révision 5.0.25 d’ici quelques jours

Oui nous sommes d’accord et la conf host est correcte

Nickel cela fonctionne, le changement de format de clé a régler le problème.

Merci pour votre aide et pour la solution.

This topic was automatically closed 3 hours after the last reply. New replies are no longer allowed.