Projet

Général

Profil

GitTips » Historique » Version 4

Geoffroy Desvernay, 25/06/2014 17:04

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 2 Geoffroy Desvernay
36 4 Geoffroy Desvernay
h2. faire des commits avec sa cle depuis une machine distante
37
38
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é (et mon identité):
39 1 Geoffroy Desvernay
40
# Je me crée (sur ma machine) des variables GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL :
41
<pre>
42
GIT_COMMITTER_EMAIL="moi@centrale-marseille.fr"
43
GIT_COMMITTER_NAME="Prénom Nom"
44
GIT_AUTHOR_EMAIL=$GIT_COMMITTER_EMAIL
45 3 Geoffroy Desvernay
GIT_AUTHOR_NAME=$GIT_COMMITTER_NAME
46 1 Geoffroy Desvernay
export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME
47
</pre>
48
# Dans mon fichier ~/.ssh/config, j'ajoute:
49
<pre>
50
Host *
51
    SendEnv LANG LC_* GIT_*
52
</pre>
53
# sur le serveur (celui qui a la clé de déploiement), il faut dans /etc/ssh/sshd_config:
54
<pre>
55
AcceptEnv GIT_*
56
</pre>
57 2 Geoffroy Desvernay
# Re-connectez-vous sur le serveur, et vérifiez que vos variables sont bien là:
58
<pre>
59
echo $SSH_AUTH_SOCK $GIT_COMMITTER_EMAIL
60
</pre>