git – autenticación con llave privada

Si has configurado un servidor local necesitarás configurar al cliente con las llaves que generaste.

Lo único que tenemos que hacer es ejecutar el comando

ssh-add /ruta-a-tu-llave/mi-llave-rsa

nos debe pedir la contraseña (passphrase) de nuestra llave privada.

Con esto ya podríamos sincronizar nuestro repositorio con el servidor remoto

git pull origin master

o

git fetch origin master

Cuando reiniciemos nuestra máquina será necesario volver a ejecutar el comando ‘ssh-add’ e ingresar nuestra contraseña. Si quieres evitar esto, tendrías que remover la contraseña de la llave privada (lo cual no es recomendable) de la siguiente manera

ssh-keygen -p /ruta-a-tu-llave/mi-llave-rsa

ingresar tu calve anterior y dejar en blanco la nueva. Una vez hecho esto debes agregar la siguiente línea al archivo “~/.profile”

ssh-add /ruta-a-tu-llave/mi-llave-rsa &> /dev/null

este comando se ejecutará al iniciar tu sesión y ya no te pedirá el passphrase al intentar sincronizar.


Usuarios Windows

Para agregar tu llave privada en Git Bash, necesitas ejecutar los siguientes comandos.

Primero copiamos nuestra llave privada a la ubicación por default

cp /ruta/llave_privada_rsa ~/.ssh/id_rsa

con esto te pedirá la contraseña de tu llave privada cada vez que ejecutes un comando como “git fetch” (suponiendo que tenga clave).

Si no quieres estar tecleando tu contraseña cada vez, puedes utilizar un agente. Para ello, primero tenemos que levantar el servicio con el siguiente comando

eval `ssh-agent -s`

(notensé las comitas invertidas o backticks)

Una vez iniciado el agente, le pedimos que agregué nuestra llave

ssh-add

al invocarlo sin parámetros, utiliza la llave por default (~/.ssh/id_rsa)

Fuentes:
http://stackoverflow.com/questions/3466626/add-private-key-permanently-with-ssh-add-on-ubuntu
http://serverfault.com/questions/345103/public-key-authentication-ssh-asks-for-passphrase-after-rebooting-local-machin
http://winscp.net/eng/docs/faq_passphrase
http://stackoverflow.com/questions/112396/how-do-i-remove-the-passphrase-for-the-ssh-key-without-having-to-create-a-new-ke
http://stackoverflow.com/questions/4083079/how-to-run-git-ssh-authentication-agent

Anuncios

Git – Mover el repositorio de tu proyecto a un servidor compartido

Cuando inicias algún proyecto, muy probablemente lo hayas creado localmente (en tu computadora). Si después quieres moverlo a un servidor para compartirlo y que los demás puedan contribuir a tu proyecto, necesitas mover tu repositorio local a un servidor compartido.

Para hacer esto, ejecuta el siguiente comando para crear un clon de tu repositorio

git clone –bare /path/to/repo /path/to/bare/repo.git

Luego copia esta carpeta al servidor -mediante usb, ftp, ssh o lo que puedas-.

Puedes comprimirla antes de copiarla con

tar -zcvf /path/to/bare/repo.git repo.tar.gz

y descopmrimirla en el servidor con

tar -zxvf repo.tar.gz

Ahora para poder sincronizar con este nuevo servidor, cambia el origen de tu directorio de trabajo (working tree)

git remote rm origin

git remote add origin ssh://user@dev.foo.com/path/to/bare/repo.git

suponiendo que tienes acceso al servidor mediante ssh y luego envía tus cambios al nuevo servidor

git push

Fuentes:
http://stackoverflow.com/questions/4860166/how-to-synchronize-two-git-repositories
http://kovshenin.com/2011/transfer-your-existing-git-repository-to-github/
http://stackoverflow.com/questions/1402390/git-push-clone-to-new-server/1402783#1402783
http://www.wetware.co.nz/2009/07/pull-a-git-branch-from-remote/ 
http://www.kernel.org/pub/software/scm/git/docs/git-clone.html#_git_urls_a_id_urls_a