Conexion a un repositorio GitHub por ssh

7 Ene

Siempre es necesario llevar un control de versiones para nuestros proyectos, GitHub.com es una excelente herramienta para guardar nuestras versiones con Git.

Existen varios clientes y justamente GitHub tiene uno propio, pero yo voy a realizar mi conexión por ssh y terminal, nomás porque si.

Esto que publico me funciono en Linux y OS X, creo que no deben tener problemas en ninguno de estos dos casos, si usas winbugs, consíguete una computadora seria 😛

Lo primero que tenemos que hacer es entrar a nuestra carpeta .ssh en nuestro directorio personal, si estas en OS X y nunca has usado ssh entonces debes crearla así:

mkdir ~/.ssh

Después debemos entrar a nuestro directorio .ssh:

cd ~/.ssh

Y creamos una llave para entrar a GitHub, después de poner el comando, nos pedirá una frase de acceso y su confirmación:

ssh-keygen -t rsa -C "tuemail@domain.com" -f github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Si todo ha salido bien, debemos tener una salida parecida a esta:

Your identification has been saved in github.
Your public key has been saved in github.pub.
The key fingerprint is:
17:87:16:d4:49:e6:50:bb:1b:9e:40:8d:5d:25:c0:5b tuemail@domain.com
The key's randomart image is:
+--[ RSA 2048]----+
|         .+==oo..|
|           X+o . |
|          * *.   |
|         o oE.   |
|        S o.o    |
|         . o -   |
|            +    |
|                 |
|                 |
+-----------------+

Ahora debemos tener dos archivos .ssh que son: github y github.pub, debemos ejecutar el siguiente comando:

cat github.pub

Y obtenemos la siguiente salida, copia esto en algún lado 😉

ssh-rsa AAAAB3Nza2EAAAADAQABAAABAQDbSjrdVdjkfzZM2yfdOI2sOW9fXF5qKPZFGJl21FRbOcFmw+HZ5sa7rJknmDsGQBL+AHnc/kBJIfDD3eN1YY2tFZFu2tin6f2PrY7wovxAKC3nZQaX28v4YPR4OMENBL37wowsvH+XvEQVJYogHoq9O8OAus6rnFJeolWd/0rka8XOHv7KMX+i4k985n40iz60ivoznWIRrJbTySspIyo3qYubEGItJ+4uulZiKH79DNZfquqpF/CFQ4EDBIXXpUOZ4nZJlNaWOWy4djE0chk8VVg7QAknvc/ajQnJOIx2M34zR+0TawTDl/J+0r4IMLykTqwBk6KhzYyPFo/Y5QuX tuemail@domain.com

Debemos ingresar a github.com y hacemos click en el engrane que nos llevara a settings (Lo marque con rojo):
GitHub settings

Despues en la seccion ssh keys, damos click en add key, ingresamos el nombre de nuestra llave y pegamos el ssh-rsa que copiamos en algun lado 😉 (Marque todo en rojo para los mas despistados)
Add key Hithub

Ahora voy a crear un archivo de configuración ¿por que? tengo al menos seis o siete llaves en mi carpeta .ssh de varios repositorios de git u otras conexiones con servidores y es buena idea indicarle a nuestro equipo que llaves utilizar, asi:

touch ~/.ssh/config

Dentro de este archivo vamos a poner el siguiente contenido:

Host github.com
HostName github.com
IdentityFile /Users/tuusuario/.ssh/github
IdentitiesOnly yes

NOTA: Cambia la ruta de IdentityFile por la ruta donde esta guardado tu archivo github.
Ahora solo hace falta probar para estar seguros de que todo funciona correctamente:

ssh -T git@github.com

Esto nos debe mostrar algo así, tambien nos debe pedir la frase de acceso que ingresamos al crear nuestras llaves :

The authenticity of host 'github.com (192.30.252.129)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a5:48.
Are you sure you want to continue connecting (yes/no)?

Contestemos que “yes” 🙂 y si todo sale bien, el mensaje de bienvenida:

Identity added: /Users/elhui2/.ssh/github (/Users/elhui2/.ssh/github)
Hi elhui2! You've successfully authenticated, but GitHub does not provide shell access.

Eso es todo.
Saludos.

2 Replies to “Conexion a un repositorio GitHub por ssh

  1. Un saludo Quisiera preguntarte algo ya que no entiendo una paso y es el que nos hablas sobre la ruta –>Identityfile<– Aqui que ruta es la que va, ya que estoy un poco confundido no se si es la ruta de la clave o publica o que ruta …. Gracias espero tu ayuda

Deja un comentario