GitTips » Historique » Version 1
Geoffroy Desvernay, 29/01/2014 14:43
| 1 | 1 | Geoffroy Desvernay | h1. Trucs et astuces pour git |
|---|---|---|---|
| 2 | |||
| 3 | {{>toc}} |
||
| 4 | |||
| 5 | h2. Utiliser ma clé ssh depuis une machine distante |
||
| 6 | |||
| 7 | # Je dois avoir un 'ssh-agent' qui tourne avec ma session (c'est souvent le cas par défaut sous linux) |
||
| 8 | Pour vérifier: <pre>echo $SSH_AUTH_SOCK</pre> |
||
| 9 | # 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 |
||
| 10 | <pre> |
||
| 11 | ForwardAgent yes |
||
| 12 | </pre> |
||
| 13 | |||
| 14 | h3. Pour OSX, utiliser |
||
| 15 | |||
| 16 | <pre>ssh-add -K ~/.ssh/id_rsa</pre> |
||
| 17 | |||
| 18 | h3. Pour windows, http://blog.killtheradio.net/how-tos/ssh-agent-on-cygwin/ |
||
| 19 | |||
| 20 | h2. utiliser une cle de déploiement sur un serveur pour récupérer le code |
||
| 21 | |||
| 22 | # Créer une clé ssh sur le serveur |
||
| 23 | <pre> |
||
| 24 | ssh-keygen -C "Deploiement sur $(hostname -s)" -f ~/.ssh/id_rsa_deploy -N '' |
||
| 25 | </pre> |
||
| 26 | # L'ajouter dans la forge en tant que 'pièce d'identité de déploiement' (deployment key) |
||
| 27 | Projet->Configuration->Dépôt->Ajouter une pièce d'identité de déploiement |
||
| 28 | # configurer mon serveur pour l'utiliser |
||
| 29 | dans le fichier ~/.ssh/config de l'utilisateur sur le serveur: |
||
| 30 | <pre> |
||
| 31 | Host git.centrale-marseille.fr |
||
| 32 | IdentityFile ~/.ssh/id_rsa_deploy |
||
| 33 | </pre> |
||
| 34 | |||
| 35 | h2. Utiliser une cle de déploiement en read-only ET faire des commits depuis la même machine |
||
| 36 | 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é: |
||
| 37 | |||
| 38 | # Je me crée (sur ma machine) des variables GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL : |
||
| 39 | <pre> |
||
| 40 | GIT_COMMITTER_EMAIL="moi@centrale-marseille.fr" |
||
| 41 | GIT_COMMITTER_NAME="Prénom Nom" |
||
| 42 | GIT_AUTHOR_EMAIL=$GIT_COMMITTER_EMAIL |
||
| 43 | GIT_AUTHOR_NAME=$GIT_AUTHOR_NAME |
||
| 44 | export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME |
||
| 45 | </pre> |
||
| 46 | # Dans mon fichier ~/.ssh/config, j'ajoute: |
||
| 47 | <pre> |
||
| 48 | Host * |
||
| 49 | SendEnv LANG LC_* GIT_* |
||
| 50 | </pre> |
||
| 51 | # sur le serveur (celui qui a la clé de déploiement), il faut dans /etc/ssh/sshd_config: |
||
| 52 | <pre> |
||
| 53 | AcceptEnv GIT_* |
||
| 54 | </pre> |
||
| 55 | |||
| 56 | A partir de ce moment |