Page 1 sur 2

[git] Modification marqué 'unverified' sur GitHub (résolu)

Publié : jeu. 03 août 2023, 19:26
par @rché0
Bonjour,

j'ai ce problème qui s'affiche sur les commits signés par ma clé SSH.
La clé affichée correspond bien à celle que j'ai renseigné sur le site GitHub.

Au début, j'avais mis l'adresse mail @users.noreply.github.com dans .gitconfig,
puis je l'ai remplacer par ma véritable adresse, croyant que ça venait de là. Voici le fichier :

Code : Tout sélectionner

[user]
name = ***
email = ***
signingkey = ~/.ssh/id_rsa
[url "git@github.com:"]
insteadOf = https://github.com/
[commit]
gpgsign = true
[gpg]
format = ssh
Je n'ai rien trouvé sur le web qui puisse résolver mon problème (j'ai peut-être mal chercher :pastaper: )
Si vous avez la solution, vous serrez acclamé par un grand MERCI.

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 19:48
par @rché0
Oups,

je croie bien que j'ai fourni ma clé privée :/
J'ai corrigé en mettant ~/.ssh/id_rsa.pub dans le fichier de conf et modifier ma clé sur le site.
Est-ce que ça vient de là ? Et dois-je recréer une clé pour plus de sécurité ou ce n'est pas la peine ?

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 20:09
par FoolEcho
On la refait vu que j'avais fait un laïus pour pas grand chose et que tu as posté dans l'intervalle...

Dans ta conf locale tu dois indiquer ta clé privée, c'est avec elle que tu signes.
Sur github tu dois indiquer la clé publique, qui permettra à github de vérifier la signature.

P.S. Pour mémo sinon, faut refaire une passe sur la configuration: https://docs.github.com/fr/authenticati ... rification

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 20:34
par @rché0
Dans ta conf locale tu dois indiquer ta clé privée, c'est avec elle que tu signes.
D'après GitHub, il faut renseigner la clé publique https://docs.github.com/fr/authenticat ... r-ssh-key

En attendant, j'ai voulu recréer une clé ed25519 comme expliqué sur le site mais je bloque désormais avec la commande ssh -T git@github.com, j'ai n'est pas de retour de prompt et aucune erreur qui s'affiche voici le retour après quelques temps :

Code : Tout sélectionner

ssh: connect to host github.com port 222: Connection timed out
J'ai ajouter ma clé privée avec ssh-add ~/.ssh/id_ed25519.

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 21:20
par benjarobin
Bonjour, pourquoi le port 222 ?
Sinon clairement il faut spécifier le chemin de la clé (publique ou privé), de plus j’utiliserais le chemin absolue, sans utilisation de ~ (tilde) : https://docs.github.com/en/authenticati ... ur-ssh-key

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 21:39
par @rché0
Salut@benjarobin,

c'est un port pris comme ça, c'est pour éviter le 22 connu.
Effectivement, c'est le chemin absolue que j'utilise, je ne voulais pas mettre mon nom :)

Code : Tout sélectionner

ssh -T git@github.com -v
OpenSSH_9.3p2, OpenSSL 3.1.2 1 Aug 2023
debug1: Reading configuration data ~/.ssh/config
debug1: ~/.ssh/config line 7: Applying options for github.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to github.com [140.82.121.3] port 223.
debug1: connect to address 140.82.121.3 port 223: Connection timed out
ssh: connect to host github.com port 223: Connection timed out
J'ai changer le port mais je n'ai pas cette connection :/
J'ai fouillé dans /etc/ssh/ssh_config et .ssh/config. Je n'ai rien vu.

J'ai modifier quelques fichiers dans /etc ?

EDIT :ça marche avec le port d'origine 22 :bravo:

@ben : pense-tu que désormais mes modifications seront signée ?

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 21:56
par benjarobin
Ce n'est pas toi qui choisi le port, tu es le client, tu n'es pas un serveur. Donc c'est forcément le port 22, car github (le serveur) écoute uniquement sur le port 22 pour une connexion ssh.
Je ne sais pas si tes modifications seront signées car je n'ai pas ta vrai configuration. Le mieux est de tester dans une branche

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 22:12
par @rché0
Re,

malheureusement, c'est toujours marqué unverified.

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 22:29
par benjarobin
Tu as bien spécifié la clé publique dans la configuration de ton profil de github ?
Sans savoir ce que tu as fait, ta configuration, bref, sans aucune information c'est impossible de t'aider

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 22:32
par @rché0
Oui et la modification apportée dans la branche test est noté comme la clé fournie à github, mon .gitconfig :

Code : Tout sélectionner

[user]
name = ***
email = ***
signingkey = /home/***/.ssh/id_ed25519.pub
[url "git@github.com:"]
insteadOf = https://github.com/
[commit]
gpgsign = true
[gpg]
format = ssh

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 22:35
par benjarobin
Tu as bien copier-coller le contenu du fichier id_ed25519.pub dans ton profil de github ? Désolé je repose la même question posée différemment.
As tu bien fait des commits avec cette nouvelle clé ssh ?

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 22:38
par @rché0
Quand j'ai poussé sur la branche test, le mot de passe de la clé ne m'a pas été demandé. Pourtant, j'en ai recrée une aujourd'hui avec mpd.

Code : Tout sélectionner

git commit -m 'test'
[test d685f32] test
 1 file changed, 3 insertions(+)


Code : Tout sélectionner

git push --set-upstream origin test
Énumération des objets: 5, fait.
Décompte des objets: 100% (5/5), fait.
Compression par delta en utilisant jusqu'à 8 fils d'exécution
Compression des objets: 100% (3/3), fait.
Écriture des objets: 100% (3/3), 508 octets | 508.00 Kio/s, fait.
Total 3 (delta 2), réutilisés 0 (delta 0), réutilisés du pack 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote: 
remote: Create a pull request for 'test' on GitHub by visiting:
remote:      https://github.com/***/***/pull/new/test
remote: 
To github.com:***/***.git
 * [new branch]      test -> test
la branche 'test' est paramétrée pour suivre 'origin/test'.
J'ai bien mis le résultat de less .ssh/id_ed25519.pub dans la config de github. Comme dit, le commit crée sur la branche test à bien le hash de celle mise sur le site :/

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 22:56
par benjarobin
Pour être triplement sûr, car je pense que tu ne l'as pas fait. Tu mélanges 2 types de clé SSH : La clé d'authentification et la clé de signature (après tu peux utiliser la même pour les 2).
Peux tu aller ici : https://github.com/settings/keys et vérifier que tu as bien dans la section "SSH keys" une clé dans la sous section "Signing keys", ne pas confondre avec la sous section "Authentication Keys"

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 22:58
par FoolEcho
benjarobin a écrit : jeu. 03 août 2023, 21:20 Bonjour, pourquoi le port 222 ?
Sinon clairement il faut spécifier le chemin de la clé publique : https://docs.github.com/en/authenticati ... ur-ssh-key
Par contre j’utiliserais le chemin absolue, sans utilisation de ~
Sauf que leur doc est fausse sur ce point.
Tu signes nécessairement avec ta clé privée et tu déchiffres avec la publique.
Donc en local c'est bien la clé privée qu'il faut indiquer.
Et sur github la clé publique pour vérifier la signature (j'ignore si on peut indiquer la privée comme ça peut se faire depuis gitlab par exemple, mais bref).

Sinon ça n'aurait aucun sens: n'importe qui pourrait récupérer ta clé publique et signer n'importe quoi en ton nom.

D'ailleurs cf. la doc côté gitlab sur ce point : https://docs.gitlab.com/ee/user/project ... ur-ssh-key .

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 23:00
par benjarobin
FoolEcho a écrit : jeu. 03 août 2023, 22:58Sauf que leur doc est fausse sur ce point.
Alors certes je suis d'accord avec toi pour la logic, mais cela fonctionne de mettre le chemin vers la clé publique... Et oui cela n'a aucun sens, on est d'accord (j'ai édité mon précédent message pour éviter toute confusion). Je suppose qu'il ont du gérer la chose, ainsi tu peux mettre les 2, il détecte la présence du .pub et l'enlève afin de trouver la clé privé (voir message ci-dessous, ce n'est pas comme cela que cela fonctionne).
Edit: Je viens de vérifier, et les 2 configurations sont fonctionnelles. Et mettre un chemin vers un fichier inexistant échoue bien.
Edit2: Ici le problème n'est pas le fait de ne pas arriver à signer un commit, mais le fait que Github indique "unverified" sur le commit

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 23:08
par @rché0
@FoolEcho,

j'ai modifier le .gitconfig, mais c'est pareil.

Si tu penses au .ssh/config :

Code : Tout sélectionner

Host                  github.com
IdentityFile          /home/***/.ssh/id_ed25519
User                  ***
IdentitiesOnly        yes
StrictHostKeyChecking yes


Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 23:12
par benjarobin
Comme je te l'indique ton problème n'est pas le fait de ne pas arriver à signer un commit, mais le fait que Github indique "unverified" sur le commit.
Ici tu arrives à signer, donc à moins de ne pas utiliser la bonne clé pour signer, ton problème est dans la configuration de Github !!! Voir mon message qui explique de vérifier ton profil github.
Peux tu faire un screenshot de la page : https://github.com/settings/keys ?

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 23:15
par FoolEcho
benjarobin a écrit : jeu. 03 août 2023, 23:00
FoolEcho a écrit : jeu. 03 août 2023, 22:58Sauf que leur doc est fausse sur ce point.
Alors certes je suis d'accord avec toi pour la logic, mais cela fonctionne de mettre le chemin vers la clé publique... Et oui cela n'a aucun sens, on est d'accord. Il ont du gérer la chose, ainsi tu peux mettre les 2, il détecte la présence du .pub et l'enlève afin de trouver la clé privé.
Edit: Je viens de vérifier, et les 2 configurations sont fonctionnelles. Et mettre un chemin vers un fichier inexistant échoue bien.
Edit2: Ici le problème n'est pas le fait de ne pas arriver à signer un commit, mais le fait que Github indique "unverified" sur le commit
Mouais c'est de la bidouille à mon sens leur truc... dans les faits ça semble bien la clé publique dont il faut indiquer le chemin. Mais visiblement c'est derrière soit par un agent ssh ou pour un prompt pour accéder à la clé privée et signer (cf. https://wenijinew.medium.com/git-how-to ... 4661beddf5) ... Un gros raccourci.
benjarobin a écrit : jeu. 03 août 2023, 23:00 Edit2: Ici le problème n'est pas le fait de ne pas arriver à signer un commit, mais le fait que Github indique "unverified" sur le commit
Alors désolé mais pas d'accord. On n'a pas vu l'ombre d'un commit signé ici.
Avant d'envoyer sur le github faudrait déjà vérifier en local si le commit est bien signé (nous on n'en sait rien on parle dans le vide -> si ce n'est pas signé, c'est sûr que github n'a rien à vérifier). Il faut vérifier qu'il y a bien présence de la partie signature via:

Code : Tout sélectionner

git log --show-signature

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 23:18
par benjarobin
FoolEcho a écrit : jeu. 03 août 2023, 23:15Alors désolé mais pas d'accord. On n'a pas vu l'ombre d'un commit signé ici.
Par défaut, à moins d'avoir cocher la case "Vigilant mode -> Flag unsigned commits as unverified", il n'y a le flag "unverified" que sur les commit signés (qui n'ont pas pu être vérifiés).
De plus au vu de la configuration de son git qu'il a partagée, cela demande de signer, si cela échoue, le commit n'est pas créé, donc je suis assez persuadé que c'est OK.

Re: [git] Modification marqué 'unverified' sur GitHub

Publié : jeu. 03 août 2023, 23:24
par benjarobin
FoolEcho a écrit : jeu. 03 août 2023, 23:15Mouais c'est de la bidouille à mon sens leur truc... dans les faits ça semble bien la clé publique dont il faut indiquer le chemin.
J'ai essayé de creuser le sujet, on peut bien spécifier la clé publique, voir https://dev.to/li/correctly-telling-git ... mmits-4c2c
Je suis maintenant perplexe de comment cela fonctionne...

Edit : Ok, l'explication est dans la documentation de Git (https://git-scm.com/docs/git-config#Doc ... signingKey), en gros cela ne fonctionne avec la clé publique que si tu as un agent ssh, ce qui a l'air d'être le cas de @rché0 car il ne doit plus saisir la passphrase de la clé privée.

Note : @rché0 Cette discussion est hors sujet, elle est principalement avec FoolEcho, je répète ce n'est pas ton souci, il est inutile d'embêter avec cela :-)