Projet

Général

Profil

GitTips » Historique » Révision 2

Révision 1 (Geoffroy Desvernay, 29/01/2014 14:43) → Révision 2/6 (Geoffroy Desvernay, 29/01/2014 14:45)

h1. Trucs et astuces pour git 

 {{>toc}} 

 h2. Utiliser ma clé ssh depuis une machine distante 

 # Je dois avoir un 'ssh-agent' qui tourne avec ma session (c'est souvent le cas par défaut sous linux) 
 Pour vérifier: <pre>echo $SSH_AUTH_SOCK</pre> 
 # mon client ssh doit faire suivre l'agent au serveur, pour ça il faut taper 'ssh -A' ou avoir, dans /etc/ssh/ssh_config ou ~/.ssh/config 
 <pre> 
 ForwardAgent yes 
 </pre> 

 h3. Pour OSX, utiliser 

 <pre>ssh-add -K ~/.ssh/id_rsa</pre> 

 h3. Pour windows, http://blog.killtheradio.net/how-tos/ssh-agent-on-cygwin/ 

 h2. utiliser une cle de déploiement sur un serveur pour récupérer le code 

 # Créer une clé ssh sur le serveur 
 <pre> 
 ssh-keygen -C "Deploiement sur $(hostname -s)" -f ~/.ssh/id_rsa_deploy -N '' 
 </pre> 
 # L'ajouter dans la forge en tant que 'pièce d'identité de déploiement' (deployment key) 
 Projet->Configuration->Dépôt->Ajouter une pièce d'identité de déploiement 
 # configurer mon serveur pour l'utiliser 
 dans le fichier ~/.ssh/config de l'utilisateur sur le serveur: 
 <pre> 
 Host git.centrale-marseille.fr 
   IdentityFile ~/.ssh/id_rsa_deploy 
 </pre> 


 

 h2. Utiliser une cle de déploiement en read-only ET faire des commits depuis la même machine 
 Exemple: sur une machine serveur je veux récupérer automatiquement mon dépôt GIT, mais je veux pouvoir commiter en utilisant ma clé: 

 # Je me crée (sur ma machine) des variables GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL : 
 <pre> 
 GIT_COMMITTER_EMAIL="moi@centrale-marseille.fr" 
 GIT_COMMITTER_NAME="Prénom Nom" 
 GIT_AUTHOR_EMAIL=$GIT_COMMITTER_EMAIL 
 GIT_AUTHOR_NAME=$GIT_AUTHOR_NAME 
 export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME 
 </pre> 
 # Dans mon fichier ~/.ssh/config, j'ajoute: 
 <pre> 
 Host * 
     SendEnv LANG LC_* GIT_* 
 </pre> 
 # sur le serveur (celui qui a la clé de déploiement), il faut dans /etc/ssh/sshd_config: 
 <pre> 
 AcceptEnv GIT_* 
 </pre> 
 # Re-connectez-vous sur le serveur, et vérifiez que vos variables sont bien là: 
 <pre> 
 echo $SSH_AUTH_SOCK $GIT_COMMITTER_EMAIL 
 </pre> 
 

 A partir de ce moment