User:Rominet: Difference between revisions

Jump to navigation Jump to search
Alternate method: clone with SSH
(French: tutorial on public key authentication with SSH, tailored for users of Git and download_and_compile.sh)
(Alternate method: clone with SSH)
Line 31: Line 31:
La manière la plus simple d'apporter une telle preuve consiste à entrer votre mot de passe SourceForge, mais il faudra alors le faire pour chaque opération de clonage ou de mise à jour du dépôt via <tt>ssh</tt>. Si vous travaillez avec plusieurs dépôts, par exemple si vous faites :
La manière la plus simple d'apporter une telle preuve consiste à entrer votre mot de passe SourceForge, mais il faudra alors le faire pour chaque opération de clonage ou de mise à jour du dépôt via <tt>ssh</tt>. Si vous travaillez avec plusieurs dépôts, par exemple si vous faites :
  download_and_compile.sh --git-clone-site-params=SourceForge=ssh:''username''
  download_and_compile.sh --git-clone-site-params=SourceForge=ssh:''username''
(commande qui clone ou met à jour, puis compile [https://sourceforge.net/p/flightgear/simgear/ci/next/tree/ SimGear] et [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/ FlightGear], et clone ou met à jour [https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/ FGData]), il faudra entrer le mot de passe pour chaque dépôt. Vous devinez que cela devient vite pénible. Heureusement, 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.
(commande qui clone ou met à jour, puis compile [https://sourceforge.net/p/flightgear/simgear/ci/next/tree/ SimGear] et [https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/ FlightGear], et clone ou met à jour [https://sourceforge.net/p/flightgear/fgdata/ci/next/tree/ FGData]), il faudra entrer le mot de passe pour chaque dépôt. Vous devinez que cela devient vite pénible. '''Il est cependant possible de seulement cloner avec SSH, puis changer le protocole pour chaque dépôt cloné grâce au <tt>.git/config</tt> à l'intérieur du dépôt et ainsi faire en sorte que les mises à jour des dépôts utilisent le protocole <tt>https</tt>, qui ne nécessite ni de créer vous-même une paire de clés, ni d'entrer un mot de passe.''' Si vous êtes pressé, c'est la méthode que je conseillerais. Voir [[#alternate-method-clone-with-ssh-and-update-with-https|ci-dessous]] pour plus de détails sur cette méthode.
 
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 ==
== Authentification SSH par paire de clés privée/publique ==
Line 273: Line 275:
   </li>
   </li>
</ol>
</ol>
==<span id="alternate-method-clone-with-ssh-and-update-with-https"></span> Autre méthode : clonage avec SSH et mises à jour avec HTTPS ==
Voici une autre méthode pour obtenir et mettre à jour de manière sûre les dépôts avec <tt>download_and_compile.sh</tt> :
<ol type="1">
  <li>Créez un compte sur SourceForge [https://sourceforge.net/user/registration ici] si vous n'en avez pas déjà un. Pour la suite, nous supposerons que le nom d'utilisateur associé à ce compte (le ''login'') est ''username''.
  </li>
  <li>Clonez les dépôts qui vous intéressent avec le protocole SSH :</p>
download_and_compile.sh --git-clone-site-params=SourceForge=ssh:''username''
ou bien, par exemple :
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.
  </li>
  <li>Dans chaque dépôt cloné, il y a un fichier <tt>.git/config</tt> qui contient quelque chose comme ceci :</p>
[remote "origin"]
        url = ssh://''username''@git.code.sf.net/p/flightgear/fgmeta
        fetch = +refs/heads/*:refs/remotes/origin/*
Ceci indique à Git le nom de la ''remote'' correspondant à la source utilisée lors du clonage, donc ici un serveur chez SourceForge (par défaut, la ''remote'' s'appelle <tt>origin</tt>). La ligne commençant par <code>url =</code> précise le protocole utilisé pour communiquer avec cette ''remote''. Ici, nous avons le protocole <tt>ssh</tt> car c'est lui qui a été utilisé pour l'opération de clonage. Changez-le en <tt>https</tt> en remplaçant la ligne :
url = ssh://''username''@git.code.sf.net/p/flightgear/fgmeta
par
<pre>url = https://git.code.sf.net/p/flightgear/fgmeta</pre>
  </li>
  <li>Répétez l'opération précédente pour chaque dépôt.
  </li>
</ol>
Les mises à jour étant moins volumineuses que le clonage initial en général, cette méthode assez simple devrait apporter satisfaction (sécurité et pas de problème de fiabilité).


== Références ==
== Références ==
<references/>
<references/>
377

edits

Navigation menu