User:Rominet: Difference between revisions

Jump to navigation Jump to search
More precisions
m (Minor)
(More precisions)
Line 35: Line 35:
Plutôt que d'envoyer son mot de passe SourceForge au serveur par SSH, il y a une autre manière de prouver à SourceForge que vous êtes bien l'utilisateur ''username'' : elle utilise la cryptographie asymétrique, autrement dit une paire de clés (privée, publique) au lieu d'un mot de passe. Cette méthode est sûre et permet de n'entrer le mot de passe de votre clé privée<ref name="ne-pas-confondre-mdp-clé-privée-et-mdp-compte-SourceForge">À ne pas confondre avec le mot de passe de votre compte chez SourceForge !</ref> qu'une fois pour tous les dépôts, jusqu'à ce que vous éteigniez votre ordinateur<ref name="condition-de-cession-des-clés-par-l'agent-SSH">Pour simplifier : nous donnerons des conditions plus précises ci-dessous.</ref>, ou jusqu'à épuisement d'un certain temps, ou encore jusqu'à ce que vous décidiez de mettre fin à la « mémorisation » de votre clé par l'agent SSH (notion qui sera présentée plus loin). Le but de la section suivante est de vous apprendre à mettre en place cette méthode d'authentification sûre et pratique, qui est valable dans le cadre général de l'utilisation de SSH.
Plutôt que d'envoyer son mot de passe SourceForge au serveur par SSH, il y a une autre manière de prouver à SourceForge que vous êtes bien l'utilisateur ''username'' : elle utilise la cryptographie asymétrique, autrement dit une paire de clés (privée, publique) au lieu d'un mot de passe. Cette méthode est sûre et permet de n'entrer le mot de passe de votre clé privée<ref name="ne-pas-confondre-mdp-clé-privée-et-mdp-compte-SourceForge">À ne pas confondre avec le mot de passe de votre compte chez SourceForge !</ref> qu'une fois pour tous les dépôts, jusqu'à ce que vous éteigniez votre ordinateur<ref name="condition-de-cession-des-clés-par-l'agent-SSH">Pour simplifier : nous donnerons des conditions plus précises ci-dessous.</ref>, ou jusqu'à épuisement d'un certain temps, ou encore jusqu'à ce que vous décidiez de mettre fin à la « mémorisation » de votre clé par l'agent SSH (notion qui sera présentée plus loin). Le but de la section suivante est de vous apprendre à mettre en place cette méthode d'authentification sûre et pratique, qui est valable dans le cadre général de l'utilisation de SSH.


== Authentification SSH par paire de clés privée/publique ==
==<span id="tutorial-on-ssh-public-key-authentication-and-ssh-agent"></span> Authentification SSH par paire de clés privée/publique ==


À l'exception des manipulations effectuées sur les pages web de [https://sourceforge.net/ SourceForge], ce qui suit est valable pour toute connexion entre un client et un serveur SSH. Si l'accent est mis sur [https://sourceforge.net/ SourceForge] dans ce document, c'est pour pouvoir donner des exemples concrets et parce qu'il s'adresse en priorité aux personnes souhaitant compiler FlightGear ; or les dépôts concernés, essentiellement [https://sourceforge.net/p/flightgear/simgear/ci/next/tree/ SimGear], [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/ FlightGear] et [https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/ FGData], sont tous situés chez SourceForge.
À l'exception des manipulations effectuées sur les pages web de [https://sourceforge.net/ SourceForge], ce qui suit est valable pour toute connexion entre un client et un serveur SSH. Si l'accent est mis sur [https://sourceforge.net/ SourceForge] dans ce document, c'est pour pouvoir donner des exemples concrets et parce qu'il s'adresse en priorité aux personnes souhaitant compiler FlightGear ; or les dépôts concernés, essentiellement [https://sourceforge.net/p/flightgear/simgear/ci/next/tree/ SimGear], [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/ FlightGear] et [https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/ FGData], sont tous situés chez SourceForge.
Line 109: Line 109:
(j'ai choisi [https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/ fgmeta] parce que c'est assez petit)
(j'ai choisi [https://sourceforge.net/p/flightgear/fgmeta/ci/next/tree/ fgmeta] parce que c'est assez petit)


Vous devriez voir un message de ce genre :
<span id="ssh-question-about-unknown-host-key">Vous devriez voir un message de ce genre :</span>


   <pre>The authenticity of host 'git.code.sf.net (216.105.38.16)' can't be established.
   <pre>The authenticity of host 'git.code.sf.net (216.105.38.16)' can't be established.
Line 291: Line 291:
  git clone ssh://''username''@git.code.sf.net/p/flightgear/fgmeta
  git clone ssh://''username''@git.code.sf.net/p/flightgear/fgmeta


Pour cette opération, à moins d'avoir mis en place un agent SSH et uploadé une clé SSH publique sur SourceForge, il faut entrer votre mot de passe SourceForge une fois pour chaque dépôt à cloner.
À moins que vous ne vous soyez déjà connecté à <tt>git.code.sf.net</tt> avec le protocole SSH, vous devriez voir un message de ce genre :
 
<pre>The authenticity of host 'git.code.sf.net (216.105.38.16)' can't be established.
ECDSA key fingerprint is SHA256:FeVkoYYBjuQzb5QVAgm3BkmeN5TTgL2qfmqz9tCPRL4.
Are you sure you want to continue connecting (yes/no)?</pre>
 
Reportez-vous [[#ssh-question-about-unknown-host-key|ici]] et revenez une fois que vous avez ajouté la clé (il s'agit de vérifier que la clé présentée par le serveur en guise de carte d'identité est bien celle de <tt>git.code.sf.net</tt> et de confirmer ce fait à SSH en répondant <tt>yes</tt> à la question posée ; par la suite, SSH ne posera plus cette question tant que le serveur enverra la même clé).
 
Une fois l'authenticité du serveur confirmée, SSH commence à cloner le ou les dépôts que vous avez choisi(s). À moins d'avoir, comme expliqué dans la [[#tutorial-on-ssh-public-key-authentication-and-ssh-agent|première méthode]], mis en place un agent SSH et uploadé une clé SSH publique à l'endroit prévu pour cela dans votre compte chez SourceForge, il faut alors entrer votre mot de passe SourceForge une fois pour chaque dépôt à cloner.
   </li>
   </li>
   <li>Dans chaque dépôt cloné, il y a un fichier <tt>.git/config</tt> qui contient quelque chose comme ceci :</p>
   <li>Nous supposons maintenant que l'étape précédente s'est déroulée sans erreur. Vous avez donc un ou des dépôts tout neuf(s), fraîchement cloné(s). Dans chacun de ces dépôts, il y a un fichier <tt>.git/config</tt> qui contient quelque chose comme ceci :</p>


  [remote "origin"]
  [remote "origin"]
377

edits

Navigation menu