Vamos a intentar conectar desde un MAC a un repositorio GIT con clave privada generada en el propio equipo.
Para ello, lo primero es abrir una ventana de terminal y vamos a crearnos una clave pública y clave privada.
$ ssh-keygen -t rsa -b 4096 -C "[email protected]"
Y te pregunta el nombre que le vamos a dar a ese par de claves. Esto luego en el fichero de configuración lo tendremos que poner
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/davidrodriguezgarcia/.ssh/id_rsa):
Te pide unas palabras para encriptar la clave y hacerla más robusta.
Una vez ya tenemos nuestro par de claves, hacemos un fichero config para usar esa clave donde lo necesitamos. En este caso, lo he puesto para todos los servidores.
$ vi ~/.ssh/config
En este archivo vamos a meter la siguiente configuración
Host *
AddKeysToAgent yes
UseKeychain yes
User usuarioconexiongit
IdentityFile ~/.ssh/nombreclavecreada
LogLevel DEBUG
usuarioconexiongit es el usuario con el que vamos a conectar al repositorio git
nombreclavecreada es el nombre que le hemos dado al crear las claves.
LogLevel Debug lo pongo para probar si todo va bien, aunque luego lo podriamos quitar.
Ahora añadimos esta clave al ssh-agen de la siguiente forma:
$ ssh-add -K ~/.ssh/nombreclavecreada
Ahora ya podemos confirmar que se han creado las claves correctamente
$ ls -al ~/.ssh
y podemos ver que tenemos un fichero nombreclavecreada.pub y otro nombreclavecreada. Esta es la clave publica y privada que acabamos de crear.
Ahora debemos dar de alta la clave publica en nuestro repositorio GIT para que tengamos acceso al repositorio.
Se puede comprobar que nos lo está haciendo correctamente con este comando.
$ ssh -T usuarioconexiongit@iprepositorio
Una vez hecho esto, en mi caso vamos a conectar con el programa sourcetree a nuestro repositorio. Creamos un nuevo repositorio y clonamos desde una url.
y añadimos la configuración que nos piden:
Source URL: usuarioconexiongit@ip_repositorio:nombrerepositorio
Destination path: directorio local donde vamos a bajar el repositorio.
Name: nombre del proyecto del repositorio
Con estos datos, ya deberiamos poder bajarnos el proyecto para empezar a trabajar con el.