Projet

Général

Profil

GitTips » Historique » Version 3

« Précédent - Version 3/6 (diff) - Suivant » - Version actuelle
Geoffroy Desvernay, 23/03/2014 14:15


h1. Trucs et astuces pour git

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: echo $SSH_AUTH_SOCK

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

ForwardAgent yes

h3. Pour OSX, utiliser

ssh-add -K ~/.ssh/id_rsa

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

ssh-keygen -C "Deploiement sur $(hostname -s)" -f ~/.ssh/id_rsa_deploy -N ''

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:

Host git.centrale-marseille.fr
IdentityFile ~/.ssh/id_rsa_deploy

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 :

GIT_COMMITTER_EMAIL="moi@centrale-marseille.fr"
GIT_COMMITTER_NAME="Prénom Nom"
GIT_AUTHOR_EMAIL=$GIT_COMMITTER_EMAIL
GIT_AUTHOR_NAME=$GIT_COMMITTER_NAME
export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME

Dans mon fichier ~/.ssh/config, j'ajoute:

Host *
SendEnv LANG LC_* GIT_*

sur le serveur (celui qui a la clé de déploiement), il faut dans /etc/ssh/sshd_config:

AcceptEnv GIT_*

Re-connectez-vous sur le serveur, et vérifiez que vos variables sont bien là:

echo $SSH_AUTH_SOCK $GIT_COMMITTER_EMAIL